From 295145edc205227590fafa7b79f75dff6eae880e Mon Sep 17 00:00:00 2001 From: newton-cn Date: Sat, 3 May 2025 18:03:27 +0900 Subject: [PATCH] dkdk --- .vs/newton-cn/v16/.suo | Bin 107520 -> 98816 bytes newton-cn/Form6.cs | 8 +- newton-cn/bin/Debug/newton-cn.exe | Bin 51200 -> 51200 bytes newton-cn/bin/Debug/newton-cn.pdb | Bin 122368 -> 122368 bytes newton-cn/bin/Release/newton-cn.exe | Bin 48640 -> 48640 bytes newton-cn/bin/Release/newton-cn.pdb | Bin 112128 -> 112128 bytes newton-cn/bin/v1.0/Certificate.format.ps1xml | 289 - newton-cn/bin/v1.0/Diagnostics.Format.ps1xml | Bin 4994 -> 0 bytes newton-cn/bin/v1.0/DotNetTypes.format.ps1xml | 3453 ------- newton-cn/bin/v1.0/Event.Format.ps1xml | Bin 10112 -> 0 bytes newton-cn/bin/v1.0/Examples/profile.ps1 | 7 - newton-cn/bin/v1.0/FileSystem.format.ps1xml | Bin 25306 -> 0 bytes newton-cn/bin/v1.0/Help.format.ps1xml | 2235 ----- newton-cn/bin/v1.0/HelpV3.format.ps1xml | 2760 ------ .../AppBackgroundTask/AppBackgroundTask.psd1 | 35 - .../MSFT_BackgroundTask.Format.ps1xml | 266 - ...oft.Windows.AppBackgroundTask.Commands.dll | Bin 8704 -> 0 bytes .../AppBackgroundTask/PS_BackgroundTask.cdxml | 79 - .../bin/v1.0/Modules/AppLocker/AppLocker.psd1 | Bin 1058 -> 0 bytes .../AppVClientCmdlets.format.ps1xml | 109 - .../Modules/AppvClient/AppVClientCmdlets.psm1 | 242 - .../v1.0/Modules/AppvClient/AppvClient.psd1 | 25 - .../Microsoft.AppV.AppVClientPowerShell.dll | Bin 108856 -> 0 bytes .../Microsoft.AppV.AppvClientComConsumer.dll | Bin 708936 -> 0 bytes ...ft.AppV.ClientProgrammability.Eventing.dll | Bin 172856 -> 0 bytes ...ft.AppV.AppVClientPowerShell.resources.dll | Bin 9216 -> 0 bytes ...t.AppV.AppvClientComConsumer.resources.dll | Bin 24576 -> 0 bytes .../bin/v1.0/Modules/Appx/Appx.format.ps1xml | 120 - newton-cn/bin/v1.0/Modules/Appx/Appx.psd1 | 31 - newton-cn/bin/v1.0/Modules/Appx/Appx.psm1 | 119 - .../bin/v1.0/Modules/Appx/ko-KR/Appx.psd1 | 4 - .../AssignedAccess/AssignedAccess.psd1 | 13 - .../AssignedAccess/AssignedAccess.psm1 | 342 - .../ko-KR/AssignedAccessMsg.psd1 | Bin 2810 -> 0 bytes .../Modules/BitLocker/BitLocker.Format.ps1xml | Bin 5806 -> 0 bytes .../bin/v1.0/Modules/BitLocker/BitLocker.psd1 | Bin 1770 -> 0 bytes .../bin/v1.0/Modules/BitLocker/BitLocker.psm1 | Bin 301976 -> 0 bytes .../Microsoft.BitLocker.Structures.dll | Bin 11776 -> 0 bytes .../Modules/BitLocker/ko-KR/BitLocker.psd1 | Bin 6338 -> 0 bytes .../BitsTransfer/BitsTransfer.Format.ps1xml | 149 - .../Modules/BitsTransfer/BitsTransfer.psd1 | Bin 1604 -> 0 bytes ...IntelligentTransfer.Management.Interop.dll | Bin 129024 -> 0 bytes .../BranchCache/BranchCache.format.ps1xml | 638 -- .../v1.0/Modules/BranchCache/BranchCache.psd1 | 22 - .../BranchCache/BranchCache.types.ps1xml | 112 - .../BranchCacheClientSettingData.cdxml | 10 - .../BranchCacheContentServerSettingData.cdxml | 10 - ...nchCacheHostedCacheServerSettingData.cdxml | 10 - .../BranchCacheNetworkSettingData.cdxml | 10 - .../BranchCache/BranchCacheOrchestrator.cdxml | 817 -- ...anchCachePrimaryPublicationCacheFile.cdxml | 10 - ...chCachePrimaryRepublicationCacheFile.cdxml | 10 - ...CacheSecondaryRepublicationCacheFile.cdxml | 10 - .../BranchCache/BranchCacheStatus.cdxml | 10 - .../v1.0/Modules/CimCmdlets/CimCmdlets.psd1 | Bin 1888 -> 0 bytes .../bin/v1.0/Modules/ConfigCI/ConfigCI.psd1 | 30 - .../ConfigDefender/ConfigDefender.psd1 | 244 - ...SFT_MpBehavioralNetworkBlockingRules.cdxml | 240 - .../MSFT_MpComputerStatus.cdxml | 223 - .../ConfigDefender/MSFT_MpPreference.cdxml | 2449 ----- .../ConfigDefender/MSFT_MpRollback.cdxml | 241 - .../Modules/ConfigDefender/MSFT_MpScan.cdxml | 254 - .../ConfigDefender/MSFT_MpSignature.cdxml | 251 - .../ConfigDefender/MSFT_MpThreat.cdxml | 239 - .../ConfigDefender/MSFT_MpThreatCatalog.cdxml | 226 - .../MSFT_MpThreatDetection.cdxml | 226 - .../ConfigDefender/MSFT_MpWDOScan.cdxml | 226 - .../ConfigDefenderPerformance.psd1 | 225 - .../MSFT_MpPerformanceRecording.psm1 | 1936 ---- .../MSFT_MpPerformanceRecording.wprp | 97 - .../MSFT_MpPerformanceReport.Format.ps1xml | 1773 ---- .../bin/v1.0/Modules/Defender/Defender.psd1 | 221 - .../Defender/MSFT_MpComputerStatus.cdxml | 202 - .../Modules/Defender/MSFT_MpPreference.cdxml | 1046 --- .../v1.0/Modules/Defender/MSFT_MpScan.cdxml | 233 - .../Modules/Defender/MSFT_MpSignature.cdxml | 230 - .../v1.0/Modules/Defender/MSFT_MpThreat.cdxml | 218 - .../Defender/MSFT_MpThreatCatalog.cdxml | 205 - .../Defender/MSFT_MpThreatDetection.cdxml | 205 - .../Modules/Defender/MSFT_MpWDOScan.cdxml | 205 - .../DeliveryOptimization.psd1 | 28 - .../DeliveryOptimizationStatus.psm1 | 513 -- .../DeliveryOptimizationVerboseLogs.psm1 | 96 - ...ows.DeliveryOptimization.AdminCommands.dll | Bin 75776 -> 0 bytes .../DirectAccessClientComponents.psd1 | 17 - ...MSFT_DAClientExperienceConfiguration.cdxml | 191 - ...lientExperienceConfiguration.format.ps1xml | 56 - ...ClientExperienceConfiguration.types.ps1xml | 18 - .../MSFT_DASiteTableEntry.cdxml | 333 - .../MSFT_DASiteTableEntry.format.ps1xml | 51 - .../MSFT_DASiteTableEntry.types.ps1xml | 32 - .../bin/v1.0/Modules/Dism/Dism.Format.ps1xml | 745 -- .../bin/v1.0/Modules/Dism/Dism.Types.ps1xml | 586 -- newton-cn/bin/v1.0/Modules/Dism/Dism.psd1 | 86 - newton-cn/bin/v1.0/Modules/Dism/Dism.psm1 | 30 - .../Dism/Microsoft.Dism.PowerShell.dll | Bin 132608 -> 0 bytes .../Microsoft.Dism.Powershell.Resources.dll | Bin 9728 -> 0 bytes .../bin/v1.0/Modules/DnsClient/DnsClient.psd1 | 53 - .../DnsClientPSProvider.Format.ps1xml | 350 - .../DnsClientPSProvider.Types.ps1xml | 100 - .../DnsClient/DnsCmdlets.Format.ps1xml | 1748 ---- .../Modules/DnsClient/DnsCmdlets.Types.ps1xml | 699 -- .../Modules/DnsClient/DnsConfig.Format.ps1xml | 566 -- .../Modules/DnsClient/DnsConfig.Types.ps1xml | 38 - .../Modules/DnsClient/MSFT_DnsClient.cdxml | 95 - .../DnsClient/MSFT_DnsClientCache.cdxml | 96 - .../MSFT_DnsClientGlobalSetting.cdxml | 31 - .../MSFT_DnsClientServerAddress.cdxml | 72 - .../PS_DnsClientNRPTGlobal_v1.0.0.cdxml | 116 - .../PS_DnsClientNRPTRule_v1.0.0.cdxml | 382 - .../PS_DnsClientNrptPolicy_v1.0.0.cdxml | 40 - .../bin/v1.0/Modules/DnsClient/dnslookup.dll | Bin 38912 -> 0 bytes .../EventTracingManagement.Types.ps1xml | 185 - .../EventTracingManagement.psd1 | 45 - .../EventTracingManagement.psm1 | 228 - .../MSFT_AutologgerConfig_v1.0.cdxml | 187 - .../MSFT_AutologgerConfig_v1.0.format.ps1xml | 170 - .../MSFT_EtwTraceProvider_v1.0.cdxml | 137 - .../MSFT_EtwTraceProvider_v1.0.format.ps1xml | 100 - .../MSFT_EtwTraceSession_v1.0.cdxml | 156 - .../MSFT_EtwTraceSession_v1.0.format.ps1xml | 107 - newton-cn/bin/v1.0/Modules/ISE/ise.psd1 | 16 - newton-cn/bin/v1.0/Modules/ISE/ise.psm1 | 185 - .../Modules/International/International.psd1 | 13 - newton-cn/bin/v1.0/Modules/Kds/Kds.psd1 | 21 - .../LanguagePackManagement.psd1 | 131 - .../LanguagePackManagementViews.ps1xml | 47 - ...uagePackManagement.Powershell.Commands.dll | Bin 27136 -> 0 bytes ...nagement.Powershell.Commands.Resources.dll | Bin 4608 -> 0 bytes .../bin/v1.0/Modules/MMAgent/MMAgent.psd1 | 21 - .../Modules/MMAgent/ps_mmagent_v1.0.cdxml | 165 - .../Microsoft.PowerShell.Archive.psd1 | 13 - .../Microsoft.PowerShell.Archive.psm1 | Bin 108624 -> 0 bytes .../ko-KR/ArchiveResources.psd1 | Bin 3710 -> 0 bytes .../Microsoft.PowerShell.Diagnostics.psd1 | 17 - .../Microsoft.PowerShell.Host.psd1 | 14 - .../1.0.0.0/LocalAccounts.format.ps1xml | 93 - .../Microsoft.PowerShell.LocalAccounts.dll | Bin 90624 -> 0 bytes .../Microsoft.PowerShell.LocalAccounts.psd1 | 32 - ...oft.PowerShell.LocalAccounts.Resources.dll | Bin 7168 -> 0 bytes .../Microsoft.PowerShell.Management.psd1 | 103 - .../Microsoft.PowerShell.ODataAdapter.ps1 | Bin 171100 -> 0 bytes .../Microsoft.PowerShell.ODataUtils.psd1 | Bin 5438 -> 0 bytes .../Microsoft.PowerShell.ODataUtils.psm1 | Bin 20364 -> 0 bytes .../Microsoft.PowerShell.ODataUtilsHelper.ps1 | Bin 51630 -> 0 bytes .../Microsoft.PowerShell.ODataV4Adapter.ps1 | 2668 ------ ...icrosoft.PowerShell.ODataUtilsStrings.psd1 | Bin 8906 -> 0 bytes .../Microsoft.PowerShell.Security.psd1 | 15 - .../Microsoft.PowerShell.Utility.psd1 | 34 - .../Microsoft.PowerShell.Utility.psm1 | 740 -- .../Microsoft.WSMan.Management.psd1 | 16 - ...MSFT_DtcAdvancedHostSettingTask_v1.0.cdxml | 86 - .../MSFT_DtcAdvancedSettingTask_v1.0.cdxml | 100 - .../MSFT_DtcClusterDefaultTask_v1.0.cdxml | 46 - .../MSFT_DtcClusterTMMappingTask_v1.0.cdxml | 372 - .../MsDtc/MSFT_DtcDefaultTask_v1.0.cdxml | 46 - .../Modules/MsDtc/MSFT_DtcLogTask_v1.0.cdxml | 94 - .../MSFT_DtcNetworkSettingTask_v1.0.cdxml | 130 - .../Modules/MsDtc/MSFT_DtcTask_v1.0.cdxml | 125 - .../MsDtc/MSFT_DtcTransactionTask_v1.0.cdxml | 148 - ...T_DtcTransactionsStatisticsTask_v1.0.cdxml | 33 - ...DtcTransactionsTraceSessionTask_v1.0.cdxml | 80 - ...DtcTransactionsTraceSettingTask_v1.0.cdxml | 70 - .../v1.0/Modules/MsDtc/MsDtc.Formats.ps1xml | 207 - .../bin/v1.0/Modules/MsDtc/MsDtc.Types.ps1xml | 65 - newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.psd1 | Bin 4174 -> 0 bytes newton-cn/bin/v1.0/Modules/MsDtc/TestDtc.psm1 | 752 -- .../bin/v1.0/Modules/MsDtc/ko-KR/TestDtc.psd1 | Bin 4620 -> 0 bytes .../ko/Microsoft.Dtc.PowerShell.Resources.dll | Bin 14848 -> 0 bytes .../NetAdapter/MSFT_NetAdapter.Format.ps1xml | 299 - .../MSFT_NetAdapter.cmdletDefinition.cdxml | 258 - ...T_NetAdapterAdvancedProperty.Format.ps1xml | 230 - ...terAdvancedProperty.cmdletDefinition.cdxml | 287 - .../MSFT_NetAdapterBinding.Format.ps1xml | 68 - ...T_NetAdapterBinding.cmdletDefinition.cdxml | 197 - ...FT_NetAdapterChecksumOffload.Format.ps1xml | 177 - .../MSFT_NetAdapterChecksumOffload.cdxml | 258 - ...ncapsulatedPacketTaskOffload.Format.ps1xml | 154 - ...AdapterEncapsulatedPacketTaskOffload.cdxml | 180 - .../MSFT_NetAdapterHardwareInfo.Format.ps1xml | 209 - ...AdapterHardwareInfo.cmdletDefinition.cdxml | 30 - .../MSFT_NetAdapterIPsecOffload.Format.ps1xml | 156 - .../MSFT_NetAdapterIPsecOffload.cdxml | 196 - .../MSFT_NetAdapterLso.Format.ps1xml | 146 - .../NetAdapter/MSFT_NetAdapterLso.cdxml | 191 - .../MSFT_NetAdapterPacketDirect.Format.ps1xml | 188 - .../MSFT_NetAdapterPacketDirect.cdxml | 161 - ...tAdapterPowerManagement.Format.Helper.psm1 | 166 - ...FT_NetAdapterPowerManagement.Format.ps1xml | 193 - ...pterPowerManagement.cmdletDefinition.cdxml | 304 - .../MSFT_NetAdapterQos.Format.Helper.psm1 | 179 - .../MSFT_NetAdapterQos.Format.ps1xml | 173 - .../NetAdapter/MSFT_NetAdapterQos.cdxml | 173 - .../MSFT_NetAdapterRdma.Format.ps1xml | 288 - .../NetAdapter/MSFT_NetAdapterRdma.cdxml | 165 - .../MSFT_NetAdapterRsc.Format.ps1xml | 122 - .../NetAdapter/MSFT_NetAdapterRsc.cdxml | 222 - .../MSFT_NetAdapterRss.Format.ps1xml | 169 - .../MSFT_NetAdapterRss.cmdletDefinition.cdxml | 214 - .../MSFT_NetAdapterSriov.Format.ps1xml | 103 - .../NetAdapter/MSFT_NetAdapterSriov.cdxml | 168 - .../MSFT_NetAdapterSriovVf.Format.ps1xml | 86 - ...T_NetAdapterSriovVf.cmdletDefinition.cdxml | 42 - .../MSFT_NetAdapterStatistics.Format.ps1xml | 75 - ...etAdapterStatistics.cmdletDefinition.cdxml | 30 - .../MSFT_NetAdapterUso.Format.ps1xml | 106 - .../NetAdapter/MSFT_NetAdapterUso.cdxml | 184 - .../MSFT_NetAdapterVPort.Format.ps1xml | 166 - ...SFT_NetAdapterVPort.cmdletDefinition.cdxml | 52 - .../MSFT_NetAdapterVmq.Format.ps1xml | 84 - .../MSFT_NetAdapterVmq.cmdletDefinition.cdxml | 184 - .../MSFT_NetAdapterVmqQueue.Format.ps1xml | 106 - ..._NetAdapterVmqQueue.cmdletDefinition.cdxml | 36 - .../NetAdapter/NetAdapter.Format.Helper.psm1 | 137 - .../NetAdapter/NetAdapter.Types.ps1xml | 1267 --- .../v1.0/Modules/NetAdapter/NetAdapter.psd1 | 153 - .../MSFT_NetConnectionProfile.cdxml | 129 - .../MSFT_NetConnectionProfile.format.ps1xml | 39 - .../MSFT_NetConnectionProfile.types.ps1xml | 38 - .../Modules/NetConnection/NetConnection.psd1 | 15 - .../Modules/NetDiagnostics/Get-NetView.psm1 | 2500 ------ .../NetDiagnostics/NetDiagnostics.psd1 | 122 - .../MSFT_NetEventNetworkAdapter.cdxml | 96 - .../MSFT_NetEventNetworkAdapter.format.ps1xml | 71 - .../MSFT_NetEventPacketCaptureProvider.cdxml | 199 - ...etEventPacketCaptureProvider.format.ps1xml | 152 - .../MSFT_NetEventProvider.cdxml | 144 - .../MSFT_NetEventProvider.format.ps1xml | 80 - .../MSFT_NetEventSession.cdxml | 163 - .../MSFT_NetEventSession.format.ps1xml | 98 - .../MSFT_NetEventVFPProvider.cdxml | 294 - .../MSFT_NetEventVFPProvider.format.ps1xml | 194 - .../MSFT_NetEventVmNetworkAdatper.cdxml | 85 - ...SFT_NetEventVmNetworkAdatper.format.ps1xml | 98 - .../MSFT_NetEventVmSwitch.cdxml | 85 - .../MSFT_NetEventVmSwitch.format.ps1xml | 62 - .../MSFT_NetEventVmSwitchProvider.cdxml | 133 - ...SFT_NetEventVmSwitchProvider.format.ps1xml | 95 - .../MSFT_NetEventWFPCaptureProvider.cdxml | 147 - ...T_NetEventWFPCaptureProvider.format.ps1xml | 115 - .../NetEventPacketCapture.Types.ps1xml | 140 - .../NetEventPacketCapture.psd1 | 74 - .../Modules/NetLbfo/MSFT_NetLbfoTeam.cdxml | 161 - .../NetLbfo/MSFT_NetLbfoTeam.format.ps1xml | 95 - .../NetLbfo/MSFT_NetLbfoTeamMember.cdxml | 120 - .../MSFT_NetLbfoTeamMember.format.ps1xml | 125 - .../Modules/NetLbfo/MSFT_NetLbfoTeamNic.cdxml | 101 - .../NetLbfo/MSFT_NetLbfoTeamNic.format.ps1xml | 125 - .../v1.0/Modules/NetLbfo/NetLbfo.Types.ps1xml | 247 - .../bin/v1.0/Modules/NetLbfo/NetLbfo.psd1 | 30 - .../Modules/NetNat/MSFT_NetNat.Format.ps1xml | 209 - .../Modules/NetNat/MSFT_NetNat.Types.ps1xml | 123 - .../bin/v1.0/Modules/NetNat/MSFT_NetNat.cdxml | 131 - .../NetNat/MSFT_NetNatExternalAddress.cdxml | 77 - .../Modules/NetNat/MSFT_NetNatGlobal.cdxml | 34 - .../Modules/NetNat/MSFT_NetNatSession.cdxml | 15 - .../NetNat/MSFT_NetNatStaticMapping.cdxml | 99 - newton-cn/bin/v1.0/Modules/NetNat/NetNat.psd1 | 34 - .../MSFT_NetQosPolicy.Format.Helper.psm1 | 25 - .../NetQos/MSFT_NetQosPolicy.Format.ps1xml | 149 - .../NetQos/MSFT_NetQosPolicy.Types.ps1xml | 290 - .../Modules/NetQos/MSFT_NetQosPolicy.cdxml | 1181 --- newton-cn/bin/v1.0/Modules/NetQos/NetQos.psd1 | 18 - .../Microsoft.Windows.Firewall.Commands.dll | Bin 31232 -> 0 bytes ...rewallAddressFilter.cmdletDefinition.cdxml | 72 - ...llApplicationFilter.cmdletDefinition.cdxml | 74 - ...namicKeywordAddress.cmdletDefinition.cdxml | 102 - ...wallInterfaceFilter.cmdletDefinition.cdxml | 62 - ...InterfaceTypeFilter.cmdletDefinition.cdxml | 78 - ...tFirewallPortFilter.cmdletDefinition.cdxml | 102 - .../NetFirewallProfile.cmdletDefinition.cdxml | 164 - .../NetFirewallRule.cmdletDefinition.cdxml | 646 -- ...ewallSecurityFilter.cmdletDefinition.cdxml | 126 - ...rewallServiceFilter.cmdletDefinition.cdxml | 64 - .../NetFirewallSetting.cmdletDefinition.cdxml | 141 - .../NetSecurity/NetGPO.cmdletDefinition.cdxml | 51 - ...NetIPsecDospSetting.cmdletDefinition.cdxml | 246 - .../NetIPsecIdentity.cmdletDefinition.cdxml | 31 - ...ecMainModeCryptoSet.cmdletDefinition.cdxml | 295 - ...etIPsecMainModeRule.cmdletDefinition.cdxml | 366 - .../NetIPsecMainModeSA.cmdletDefinition.cdxml | 44 - ...tIPsecPhase1AuthSet.cmdletDefinition.cdxml | 259 - ...tIPsecPhase2AuthSet.cmdletDefinition.cdxml | 253 - ...etIPsecPolicyChange.cmdletDefinition.cdxml | 17 - ...cQuickModeCryptoSet.cmdletDefinition.cdxml | 267 - ...NetIPsecQuickModeSA.cmdletDefinition.cdxml | 76 - .../NetIPsecRule.cmdletDefinition.cdxml | 825 -- .../NetSecurity/NetSecurity.formats.ps1xml | 3316 ------- .../v1.0/Modules/NetSecurity/NetSecurity.psd1 | 136 - .../NetSecurity/NetSecurity.types.ps1xml | 1085 --- ...ft.Windows.Firewall.Commands.Resources.dll | Bin 5632 -> 0 bytes .../NetSwitchTeam/MSFT_NetSwitchTeam.cdxml | 146 - .../MSFT_NetSwitchTeam.format.ps1xml | 69 - .../MSFT_NetSwitchTeamMember.cdxml | 25 - .../MSFT_NetSwitchTeamMember.format.ps1xml | 92 - .../Modules/NetSwitchTeam/NetSwitchTeam.psd1 | 44 - .../NetTCPIP/MSFT_NetCompartment.cdxml | 29 - .../Modules/NetTCPIP/MSFT_NetIPAddress.cdxml | 436 - .../NetTCPIP/MSFT_NetIPInterface.cdxml | 479 - .../NetTCPIP/MSFT_NetIPv4Protocol.cdxml | 239 - .../NetTCPIP/MSFT_NetIPv6Protocol.cdxml | 292 - .../Modules/NetTCPIP/MSFT_NetNeighbor.cdxml | 234 - .../MSFT_NetOffloadGlobalSetting.cdxml | 109 - .../NetTCPIP/MSFT_NetPrefixPolicy.cdxml | 33 - .../v1.0/Modules/NetTCPIP/MSFT_NetRoute.cdxml | 376 - .../NetTCPIP/MSFT_NetTCPConnection.cdxml | 100 - .../Modules/NetTCPIP/MSFT_NetTCPSetting.cdxml | 324 - .../NetTCPIP/MSFT_NetTransportFilter.cdxml | 126 - .../NetTCPIP/MSFT_NetUDPEndpoint.cdxml | 39 - .../Modules/NetTCPIP/MSFT_NetUDPSetting.cdxml | 46 - .../Modules/NetTCPIP/NetIPConfiguration.psm1 | 300 - .../bin/v1.0/Modules/NetTCPIP/NetTCPIP.psd1 | 78 - .../v1.0/Modules/NetTCPIP/Tcpip.Format.ps1xml | 2043 ----- .../v1.0/Modules/NetTCPIP/Tcpip.Types.ps1xml | 925 -- .../Modules/NetTCPIP/Test-NetConnection.psm1 | 643 -- .../MSFT_DAConnectionStatus.cdxml | 49 - .../MSFT_DAConnectionStatus.format.ps1xml | 27 - .../MSFT_DAConnectionStatus.types.ps1xml | 27 - .../MSFT_NCSIPolicyConfiguration.cdxml | 117 - ...MSFT_NCSIPolicyConfiguration.format.ps1xml | 39 - .../NetworkConnectivityStatus.psd1 | 17 - .../NetworkSwitchManager/CmdletHelpers.psm1 | 379 - .../NetworkSwitchConfiguration.psm1 | 71 - .../NetworkSwitchEthernetPort.psm1 | 573 -- .../NetworkSwitchFeature.psm1 | 221 - .../NetworkSwitchGlobalSettingData.psm1 | 37 - .../NetworkSwitchManager.format.ps1xml | 391 - .../NetworkSwitchManager.psd1 | 50 - .../NetworkSwitchManager.types.ps1xml | 40 - .../NetworkSwitchVlan.psm1 | 430 - .../ko-KR/NetworkSwitchManager.Resource.psd1 | Bin 3352 -> 0 bytes .../MSFT_Net6to4Configuration.cdxml | 137 - .../MSFT_Net6to4Configuration.format.ps1xml | 40 - .../MSFT_Net6to4Configuration.types.ps1xml | 69 - .../MSFT_NetDnsTransitionConfiguration.cdxml | 145 - ...etDnsTransitionConfiguration.format.ps1xml | 47 - ...NetDnsTransitionConfiguration.types.ps1xml | 32 - .../MSFT_NetDnsTransitionMonitoring.cdxml | 13 - ...T_NetDnsTransitionMonitoring.format.ps1xml | 40 - .../MSFT_NetISATAPConfiguration.cdxml | 126 - .../MSFT_NetISATAPConfiguration.format.ps1xml | 37 - .../MSFT_NetISATAPConfiguration.types.ps1xml | 51 - .../MSFT_NetIpHTTPsConfiguration.cdxml | 321 - ...MSFT_NetIpHTTPsConfiguration.format.ps1xml | 50 - .../MSFT_NetIpHTTPsConfiguration.types.ps1xml | 86 - .../MSFT_NetIpHTTPsState.cdxml | 10 - .../MSFT_NetIpHTTPsState.format.ps1xml | 28 - .../MSFT_NetNatTransitionConfiguration.cdxml | 165 - ...etNatTransitionConfiguration.format.ps1xml | 45 - ...NetNatTransitionConfiguration.types.ps1xml | 50 - .../MSFT_NetNatTransitionMonitoring.cdxml | 23 - ...T_NetNatTransitionMonitoring.format.ps1xml | 50 - .../MSFT_NetTeredoConfiguration.cdxml | 166 - .../MSFT_NetTeredoConfiguration.format.ps1xml | 46 - .../MSFT_NetTeredoConfiguration.types.ps1xml | 32 - .../MSFT_NetTeredoState.cdxml | 19 - .../MSFT_NetTeredoState.format.ps1xml | 26 - .../NetworkTransition/NetworkTransition.psd1 | 17 - newton-cn/bin/v1.0/Modules/PKI/pki.psd1 | Bin 1982 -> 0 bytes .../bin/v1.0/Modules/PKI/pki.types.ps1xml | 186 - .../WindowsPackageCab/WindowsPackageCab.psd1 | 33 - .../WindowsPackageCab/WindowsPackageCab.psm1 | 1109 --- .../ko-KR/WindowsPackageCab.Strings.psd1 | Bin 928 -> 0 bytes .../DSCResources/CompositeResourceHelper.psm1 | 147 - .../DSCResources/DSCResourceHelper.psm1 | 14 - .../GroupSet/GroupSet.Schema.psm1 | 40 - .../DSCResources/GroupSet/GroupSet.psd1 | Bin 5322 -> 0 bytes .../MSFT_ArchiveResource.psm1 | 983 -- .../MSFT_ArchiveResource.schema.mof | Bin 1062 -> 0 bytes .../ko-KR/ArchiveProvider.psd1 | Bin 10024 -> 0 bytes .../ko-KR/MSFT_ArchiveResource.schema.mfl | Bin 2024 -> 0 bytes .../MSFT_EnvironmentResource.psm1 | 798 -- .../MSFT_EnvironmentResource.schema.mof | Bin 544 -> 0 bytes .../ko-KR/MSFT_EnvironmentResource.schema.mfl | Bin 1208 -> 0 bytes .../MSFT_EnvironmentResource.strings.psd1 | Bin 1880 -> 0 bytes .../MSFT_GroupResource.psm1 | 2184 ----- .../MSFT_GroupResource.schema.mof | Bin 834 -> 0 bytes .../ko-KR/MSFT_GroupResource.schema.mfl | Bin 1640 -> 0 bytes .../ko-KR/MSFT_GroupResource.strings.psd1 | Bin 3852 -> 0 bytes .../MSFT_LogResource.schema.mof | 7 - .../ko-KR/MSFT_LogResource.schema.mfl | Bin 770 -> 0 bytes .../MSFT_PackageResource.psm1 | 811 -- .../MSFT_PackageResource.schema.mof | Bin 1188 -> 0 bytes .../ko-KR/MSFT_PackageResource.schema.mfl | Bin 2500 -> 0 bytes .../ko-KR/PackageProvider.psd1 | Bin 5590 -> 0 bytes .../MSFT_ProcessResource.psm1 | 722 -- .../MSFT_ProcessResource.schema.mof | Bin 1250 -> 0 bytes .../ko-KR/MSFT_ProcessResource.schema.mfl | Bin 2468 -> 0 bytes .../ko-KR/MSFT_ProcessResource.strings.psd1 | Bin 3276 -> 0 bytes .../MSFT_RegistryResource.psm1 | 1100 --- .../MSFT_RegistryResource.schema.mof | Bin 1008 -> 0 bytes .../ko-KR/MSFT_RegistryResource.schema.mfl | Bin 1694 -> 0 bytes .../ko-KR/MSFT_RegistryResource.strings.psd1 | Bin 2934 -> 0 bytes .../MSFT_RoleResource/MSFT_RoleResource.psm1 | 538 -- .../MSFT_RoleResource.schema.mof | Bin 1306 -> 0 bytes .../ko-KR/MSFT_RoleResource.schema.mfl | Bin 752 -> 0 bytes .../ko-KR/MSFT_RoleResourceStrings.psd1 | Bin 3360 -> 0 bytes .../MSFT_ScriptResource.psm1 | 326 - .../MSFT_ScriptResource.schema.mof | Bin 718 -> 0 bytes .../ko-KR/MSFT_ScriptResource.schema.mfl | Bin 808 -> 0 bytes .../ko-KR/MSFT_ScriptResourceStrings.psd1 | Bin 2372 -> 0 bytes .../MSFT_ServiceResource.psm1 | 1256 --- .../MSFT_ServiceResource.schema.mof | Bin 1548 -> 0 bytes .../ko-KR/MSFT_ServiceResource.schema.mfl | Bin 2388 -> 0 bytes .../ko-KR/MSFT_ServiceResource.strings.psd1 | Bin 4594 -> 0 bytes .../MSFT_UserResource/MSFT_UserResource.psm1 | 1136 --- .../MSFT_UserResource.schema.mof | Bin 982 -> 0 bytes .../ko-KR/MSFT_UserResource.schema.mfl | Bin 790 -> 0 bytes .../ko-KR/MSFT_UserResource.strings.psd1 | Bin 2170 -> 0 bytes .../MSFT_WaitForAll/MSFT_WaitForAll.psm1 | 113 - .../MSFT_WaitForAll.schema.mof | Bin 1448 -> 0 bytes .../ko-KR/MSFT_WaitForAll.schema.mfl | Bin 1250 -> 0 bytes .../MSFT_WaitForAny/MSFT_WaitForAny.psm1 | 113 - .../MSFT_WaitForAny.schema.mof | Bin 1446 -> 0 bytes .../ko-KR/MSFT_WaitForAny.schema.mfl | Bin 1250 -> 0 bytes .../MSFT_WaitForSome/MSFT_WaitForSome.psm1 | 129 - .../MSFT_WaitForSome.schema.mof | Bin 1636 -> 0 bytes .../ko-KR/MSFT_WaitForSome.schema.mfl | Bin 1388 -> 0 bytes .../MSFT_WindowsOptionalFeature.psm1 | Bin 16522 -> 0 bytes .../MSFT_WindowsOptionalFeature.schema.mof | Bin 1282 -> 0 bytes .../MSFT_WindowsOptionalFeature.schema.mfl | Bin 2272 -> 0 bytes .../MSFT_WindowsOptionalFeature.strings.psd1 | Bin 1954 -> 0 bytes .../ProcessSet/ProcessSet.Schema.psm1 | 49 - .../DSCResources/ProcessSet/ProcessSet.psd1 | Bin 5392 -> 0 bytes .../DSCResources/RunAsHelper.psm1 | 480 - .../ServiceSet/ServiceSet.Schema.psm1 | 46 - .../DSCResources/ServiceSet/ServiceSet.psd1 | Bin 5404 -> 0 bytes .../WindowsFeatureSet.Schema.psm1 | 45 - .../WindowsFeatureSet/WindowsFeatureSet.psd1 | Bin 5430 -> 0 bytes .../WindowsOptionalFeatureSet.Schema.psm1 | 49 - .../WindowsOptionalFeatureSet.psd1 | Bin 5426 -> 0 bytes .../ko-KR/RunAsHelper.strings.psd1 | Bin 1368 -> 0 bytes .../Disable-DscDebug.cdxml | 28 - .../DSCFileDownloadManager.psd1 | Bin 4684 -> 0 bytes ...oft.PowerShell.DSC.FileDownloadManager.dll | Bin 36864 -> 0 bytes ...hell.DSC.FileDownloadManager.Resources.dll | Bin 6144 -> 0 bytes .../Enable-DscDebug.cdxml | 35 - .../Get-DSCLocalConfigurationManager.cdxml | 34 - .../Get-DscConfiguration.cdxml | 34 - .../Get-DscConfigurationStatus.cdxml | 39 - .../PSDesiredStateConfiguration.format.ps1xml | 368 - .../PSDesiredStateConfiguration.psd1 | Bin 5084 -> 0 bytes .../PSDesiredStateConfiguration.psm1 | 4822 ---------- .../PSDesiredStateConfiguration.types.ps1xml | 107 - .../PSDscXMachine.psm1 | 376 - .../Remove-DscConfigurationDocument.cdxml | 50 - .../Restore-DscConfiguration.cdxml | 28 - .../Stop-DscConfiguration.cdxml | 35 - .../WebDownloadManager.psd1 | Bin 2446 -> 0 bytes .../ko-KR/PSDSCxMachine.strings.psd1 | Bin 1624 -> 0 bytes .../PSDesiredStateConfiguration.Resource.psd1 | Bin 11152 -> 0 bytes .../Modules/PSDiagnostics/PSDiagnostics.psd1 | 14 - .../Modules/PSDiagnostics/PSDiagnostics.psm1 | Bin 23642 -> 0 bytes .../PSScheduledJob.Format.ps1xml | Bin 7942 -> 0 bytes .../PSScheduledJob/PSScheduledJob.psd1 | 34 - .../PSScheduledJob.types.ps1xml | Bin 2494 -> 0 bytes .../v1.0/Modules/PSWorkflow/PSWorkflow.psd1 | 16 - .../v1.0/Modules/PSWorkflow/PSWorkflow.psm1 | Bin 4068 -> 0 bytes .../PSWorkflow/PSWorkflow.types.ps1xml | Bin 8290 -> 0 bytes .../PSWorkflowUtility/PSWorkflowUtility.psd1 | 15 - .../PSWorkflowUtility/PSWorkflowUtility.psm1 | Bin 1852 -> 0 bytes .../CIM_PhysicalComputerSystemView.cdxml | 275 - .../PcsvDevice/PcsvDevice.format.ps1xml | 56 - .../v1.0/Modules/PcsvDevice/PcsvDevice.psd1 | 26 - .../PcsvDevice/PcsvDevice.types.ps1xml | 28 - ...e.PersistentMemory.Management.Commands.dll | Bin 144384 -> 0 bytes .../PersistentMemory/PersistentMemory.psd1 | 53 - .../Modules/PersistentMemory/PmemDisk.ps1xml | 52 - .../PmemPhysicalDevice.ps1xml | 64 - ...ntMemory.Management.Commands.Resources.dll | Bin 6144 -> 0 bytes .../Modules/PersistentMemory/scmbridge.dll | Bin 148480 -> 0 bytes .../Modules/PnpDevice/PnpDevice.Format.ps1xml | 96 - .../Modules/PnpDevice/PnpDevice.Resource.psd1 | 72 - .../Modules/PnpDevice/PnpDevice.Types.ps1xml | 283 - .../v1.0/Modules/PnpDevice/PnpDevice.cdxml | 268 - .../bin/v1.0/Modules/PnpDevice/PnpDevice.psd1 | 28 - .../MSFT_3DPrinter.format.ps1xml | 150 - .../PrintManagement/MSFT_3DPrinter_v1.0.cdxml | 7 - .../MSFT_AdaptivePrinterPort.format.ps1xml | 80 - .../MSFT_AdaptivePrinterPort.types.ps1xml | 15 - .../MSFT_AdaptivePrinterPort_v1.0.cdxml | 13 - .../MSFT_LocalPrinterPort.format.ps1xml | 62 - .../MSFT_LocalPrinterPort_v1.0.cdxml | 7 - .../MSFT_LprPrinterPort.format.ps1xml | 68 - .../MSFT_LprPrinterPort_v1.0.cdxml | 7 - .../MSFT_PrintJob.format.ps1xml | 116 - .../MSFT_PrintJob.types.ps1xml | 26 - .../PrintManagement/MSFT_PrintJob_v1.0.cdxml | 386 - .../MSFT_Printer.format.ps1xml | 163 - .../PrintManagement/MSFT_Printer.types.ps1xml | 38 - .../MSFT_PrinterConfiguration.format.ps1xml | 86 - .../MSFT_PrinterConfiguration.types.ps1xml | 31 - .../MSFT_PrinterConfiguration_v1.0.cdxml | 323 - .../MSFT_PrinterDriver.format.ps1xml | 131 - .../MSFT_PrinterDriver_v1.0.cdxml | 114 - .../MSFT_PrinterNfcTag.format.ps1xml | 63 - .../MSFT_PrinterNfcTagTasks_v1.0.cdxml | 77 - .../MSFT_PrinterNfcTag_v1.0.cdxml | 7 - .../MSFT_PrinterPort.format.ps1xml | 49 - .../MSFT_PrinterPortTasks_v1.0.cdxml | 158 - .../MSFT_PrinterPort_v1.0.cdxml | 57 - .../MSFT_PrinterProperty.format.ps1xml | 81 - .../MSFT_PrinterProperty.types.ps1xml | 15 - .../MSFT_PrinterProperty_v1.0.cdxml | 138 - .../PrintManagement/MSFT_Printer_v1.0.cdxml | 639 -- .../MSFT_TcpIpPrinterPort.format.ps1xml | 101 - .../MSFT_TcpIpPrinterPort.types.ps1xml | 15 - .../MSFT_TcpIpPrinterPort_v1.0.cdxml | 13 - .../PrintManagement/PrintManagement.psd1 | Bin 8578 -> 0 bytes .../Microsoft.ProcessMitigations.Commands.dll | Bin 100864 -> 0 bytes ...t.ProcessMitigations.Commands.dll-Help.xml | 749 -- ...crosoft.ProcessMitigations.Commands.ps1xml | 1422 --- .../ProcessMitigations.psd1 | 15 - .../Provisioning/provautologger_add.reg | 176 - .../Provisioning/provautologger_del.reg | 17 - .../v1.0/Modules/Provisioning/provcmdlets.dll | Bin 20992 -> 0 bytes .../v1.0/Modules/Provisioning/provcommon.dll | Bin 90624 -> 0 bytes .../Modules/Provisioning/provisioning.psd1 | Bin 2340 -> 0 bytes .../Modules/Provisioning/provisioning.psm1 | 16 - .../Modules/Provisioning/provpackageapi.dll | Bin 787456 -> 0 bytes .../v1.0/Modules/Provisioning/provtrace.wprp | 100 - .../v1.0/Modules/Provisioning/wiminterop.dll | Bin 13312 -> 0 bytes .../MSFT_ScheduledTask.format.ps1xml | 69 - .../MSFT_ScheduledTask.types.ps1xml | 179 - .../MSFT_ScheduledTask_v1.0.cdxml | 73 - .../PS_ClusteredScheduledTask_v1.0.cdxml | 391 - .../PS_ScheduledTask.types.ps1xml | 54 - .../PS_ScheduledTask_v1.0.cdxml | 1348 --- .../ScheduledTasks/ScheduledTasks.psd1 | 52 - .../v1.0/Modules/SecureBoot/SecureBoot.psd1 | 18 - .../v1.0/Modules/SmbShare/Smb.format.ps1xml | 1220 --- .../v1.0/Modules/SmbShare/Smb.types.ps1xml | 453 - .../Modules/SmbShare/SmbBandwidthLimit.cdxml | 105 - .../SmbShare/SmbClientConfiguration.cdxml | 237 - .../SmbShare/SmbClientNetworkInterface.cdxml | 26 - .../v1.0/Modules/SmbShare/SmbComponent.cdxml | 41 - .../v1.0/Modules/SmbShare/SmbConnection.cdxml | 56 - .../Modules/SmbShare/SmbGlobalMapping.cdxml | 169 - .../v1.0/Modules/SmbShare/SmbMapping.cdxml | 177 - .../SmbShare/SmbMultichannelConnection.cdxml | 83 - .../SmbShare/SmbMultichannelConstraint.cdxml | 168 - .../v1.0/Modules/SmbShare/SmbOpenFile.cdxml | 149 - .../Modules/SmbShare/SmbScriptModule.psm1 | 185 - .../SmbServerCertificateMapping.cdxml | 198 - .../SmbShare/SmbServerConfiguration.cdxml | 350 - .../SmbShare/SmbServerNetworkInterface.cdxml | 26 - .../v1.0/Modules/SmbShare/SmbSession.cdxml | 136 - .../SmbShare/SmbShare.Format.Helper.psm1 | 43 - .../bin/v1.0/Modules/SmbShare/SmbShare.cdxml | 776 -- .../bin/v1.0/Modules/SmbShare/SmbShare.psd1 | 114 - .../SmbShare/en-US/SmbLocalization.psd1 | 11 - .../SmbWitness/SmbWitness.Format.ps1xml | 65 - .../v1.0/Modules/SmbWitness/SmbWitness.psd1 | 19 - .../SmbWitness/SmbWitness.types.ps1xml | 37 - .../SmbWitness/SmbWitnessWmiClient.cdxml | 80 - .../Modules/StartLayout/GetStartApps.psm1 | 14 - .../v1.0/Modules/StartLayout/StartLayout.psd1 | 15 - newton-cn/bin/v1.0/Modules/Storage/Disk.cdxml | 562 -- .../bin/v1.0/Modules/Storage/DiskImage.cdxml | 150 - .../v1.0/Modules/Storage/FileIntegrity.cdxml | 92 - .../bin/v1.0/Modules/Storage/FileServer.cdxml | 210 - .../bin/v1.0/Modules/Storage/FileShare.cdxml | 386 - .../Modules/Storage/FileStorageTier.cdxml | 269 - .../v1.0/Modules/Storage/InitiatorId.cdxml | 139 - .../v1.0/Modules/Storage/InitiatorPort.cdxml | 152 - .../bin/v1.0/Modules/Storage/MaskingSet.cdxml | 524 -- .../Storage/OffloadDataTransferSetting.cdxml | 26 - .../bin/v1.0/Modules/Storage/Partition.cdxml | 404 - .../v1.0/Modules/Storage/PhysicalDisk.cdxml | 6 - .../Modules/Storage/ResiliencySetting.cdxml | 123 - .../Modules/Storage/Storage.format.ps1xml | 2933 ------ .../bin/v1.0/Modules/Storage/Storage.psd1 | 213 - .../v1.0/Modules/Storage/Storage.types.ps1xml | 3472 ------- .../v1.0/Modules/Storage/StorageCmdlets.cdxml | 3187 ------- .../Modules/Storage/StorageEnclosure.cdxml | 339 - .../v1.0/Modules/Storage/StorageHealth.cdxml | 151 - .../bin/v1.0/Modules/Storage/StorageJob.cdxml | 172 - .../v1.0/Modules/Storage/StorageNode.cdxml | 113 - .../v1.0/Modules/Storage/StoragePool.cdxml | 786 -- .../Modules/Storage/StorageProvider.cdxml | 227 - .../Storage/StorageReliabilityCounter.cdxml | 49 - .../v1.0/Modules/Storage/StorageScripts.psm1 | 7951 ----------------- .../v1.0/Modules/Storage/StorageSetting.cdxml | 82 - .../Modules/Storage/StorageSubSystem.cdxml | 928 -- .../v1.0/Modules/Storage/StorageTier.cdxml | 206 - .../bin/v1.0/Modules/Storage/TargetPort.cdxml | 167 - .../v1.0/Modules/Storage/TargetPortal.cdxml | 65 - .../v1.0/Modules/Storage/VirtualDisk.cdxml | 765 -- .../bin/v1.0/Modules/Storage/Volume.cdxml | 856 -- .../StorageBusCache.format.ps1xml | 79 - .../StorageBusCache/StorageBusCache.psd1 | 31 - .../StorageBusCache/StorageBusCache.psm1 | 2452 ----- .../StorageBusCache.types.ps1xml | 19 - newton-cn/bin/v1.0/Modules/TLS/tls.psd1 | 25 - .../TroubleshootingPack.format.ps1xml | 383 - .../TroubleshootingPack.psd1 | 14 - .../TrustedPlatformModule.psd1 | 26 - .../Modules/UEV/Microsoft.Uev.Commands.dll | Bin 84480 -> 0 bytes .../bin/v1.0/Modules/UEV/UEV.Types.ps1xml | 30 - newton-cn/bin/v1.0/Modules/UEV/UEV.psd1 | Bin 1160 -> 0 bytes .../PS_EapConfiguration_v1.0.0.cdxml | 165 - ...VpnConnectionIPsecConfiguration_v1.0.cdxml | 192 - .../PS_VpnConnectionProxy_v1.0.cdxml | 72 - .../PS_VpnConnectionRoute_v1.0.cdxml | 112 - ...VpnConnectionTriggerApplication_v1.0.cdxml | 99 - ...nnectionTriggerDnsConfiguration_v1.0.cdxml | 162 - ...ConnectionTriggerTrustedNetwork_v1.0.cdxml | 144 - .../PS_VpnConnectionTrigger_v1.0.cdxml | 33 - .../VpnClient/PS_VpnConnection_v1.0.0.cdxml | 590 -- .../VpnClient/PS_VpnServerAddress_v1.0.cdxml | 40 - .../bin/v1.0/Modules/VpnClient/VpnClient.psd1 | 20 - .../VpnClientPSProvider.Format.ps1xml | 838 -- .../VpnClientPSProvider.Types.ps1xml | 272 - .../Wdac/MSFT_OdbcDriverTask_v1.0.cdxml | 292 - .../Modules/Wdac/MSFT_OdbcDsnTask_v1.0.cdxml | 484 - .../Wdac/MSFT_OdbcPerfCounterTask_v1.0.cdxml | 322 - .../Wdac/MSFT_WdacBidTraceTask_v1.0.cdxml | 589 -- .../bin/v1.0/Modules/Wdac/Wdac.format.ps1xml | 686 -- newton-cn/bin/v1.0/Modules/Wdac/Wdac.psd1 | 31 - .../bin/v1.0/Modules/Wdac/Wdac.types.ps1xml | 239 - ...icrosoft.Windows.Whea.WheaMemoryPolicy.dll | Bin 11776 -> 0 bytes newton-cn/bin/v1.0/Modules/Whea/Whea.psd1 | 47 - .../WindowsDeveloperLicense.psd1 | 15 - ...osoft.WindowsErrorReporting.PowerShell.dll | Bin 6656 -> 0 bytes .../WindowsErrorReporting.psd1 | 21 - .../WindowsErrorReporting.psm1 | 11 - .../Microsoft.WindowsSearch.Commands.dll | Bin 16896 -> 0 bytes .../WindowsSearch/WindowsSearch.Format.ps1xml | 25 - .../Modules/WindowsSearch/WindowsSearch.psd1 | 13 - ...osoft.WindowsSearch.Commands.Resources.dll | Bin 6144 -> 0 bytes .../Modules/WindowsUpdate/WindowsUpdate.psd1 | 40 - .../WindowsUpdate/WindowsUpdateLog.psm1 | 515 -- .../MSFT_WUOperations.cdxml | 44 - .../MSFT_WUOperations.psm1 | 32 - .../MSFT_WUSettings.cdxml | 89 - .../WindowsUpdateProvider/MSFT_WUUpdate.cdxml | 54 - .../MSFT_WUUpdate.format.ps1xml | 106 - .../MSFT_WUUpdate.types.ps1xml | 68 - .../WindowsUpdateProvider.psd1 | 47 - newton-cn/bin/v1.0/Modules/iSCSI/iSCSI.psd1 | 27 - .../v1.0/Modules/iSCSI/iSCSIConnection.cdxml | 93 - .../bin/v1.0/Modules/iSCSI/iSCSISession.cdxml | 188 - .../bin/v1.0/Modules/iSCSI/iSCSITarget.cdxml | 326 - .../Modules/iSCSI/iSCSITargetPortal.cdxml | 270 - newton-cn/bin/v1.0/PSEvents.dll | Bin 55808 -> 0 bytes .../bin/v1.0/PowerShellCore.format.ps1xml | Bin 206468 -> 0 bytes .../bin/v1.0/PowerShellTrace.format.ps1xml | 91 - newton-cn/bin/v1.0/Registry.format.ps1xml | Bin 8458 -> 0 bytes newton-cn/bin/v1.0/Schemas/PSMaml/ITPro.xsd | 17 - newton-cn/bin/v1.0/Schemas/PSMaml/Maml.rld | Bin 115835 -> 0 bytes newton-cn/bin/v1.0/Schemas/PSMaml/Maml.tbr | 1427 --- newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsd | 18 - newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsx | 3 - .../bin/v1.0/Schemas/PSMaml/Maml_HTML.xsl | Bin 728 -> 0 bytes .../v1.0/Schemas/PSMaml/Maml_HTML_Style.xsl | 384 - .../v1.0/Schemas/PSMaml/ManagedDeveloper.xsd | 359 - .../PSMaml/ManagedDeveloperStructure.xsd | 85 - .../bin/v1.0/Schemas/PSMaml/ProviderHelp.xsd | 147 - newton-cn/bin/v1.0/Schemas/PSMaml/base.xsd | 137 - .../v1.0/Schemas/PSMaml/baseConditional.xsd | 121 - newton-cn/bin/v1.0/Schemas/PSMaml/block.xsd | 23 - .../bin/v1.0/Schemas/PSMaml/blockCommon.xsd | 90 - .../bin/v1.0/Schemas/PSMaml/blockSoftware.xsd | 23 - newton-cn/bin/v1.0/Schemas/PSMaml/command.xsd | 377 - .../bin/v1.0/Schemas/PSMaml/conditionSet.xsd | 92 - .../bin/v1.0/Schemas/PSMaml/developer.xsd | 261 - .../v1.0/Schemas/PSMaml/developerCommand.rld | Bin 115907 -> 0 bytes .../v1.0/Schemas/PSMaml/developerCommand.xsd | 347 - .../Schemas/PSMaml/developerDscResource.xsd | 45 - .../v1.0/Schemas/PSMaml/developerManaged.xsd | 229 - .../Schemas/PSMaml/developerManagedClass.xsd | 67 - .../PSMaml/developerManagedConstructor.xsd | 38 - .../PSMaml/developerManagedDelegate.xsd | 37 - .../PSMaml/developerManagedEnumeration.xsd | 33 - .../Schemas/PSMaml/developerManagedEvent.xsd | 52 - .../Schemas/PSMaml/developerManagedField.xsd | 45 - .../PSMaml/developerManagedInterface.xsd | 45 - .../Schemas/PSMaml/developerManagedMethod.xsd | 38 - .../PSMaml/developerManagedNamespace.xsd | 55 - .../PSMaml/developerManagedOperator.xsd | 22 - .../PSMaml/developerManagedOverload.xsd | 39 - .../PSMaml/developerManagedProperty.xsd | 46 - .../PSMaml/developerManagedStructure.xsd | 45 - .../Schemas/PSMaml/developerReference.xsd | 305 - .../Schemas/PSMaml/developerStructure.xsd | 93 - .../bin/v1.0/Schemas/PSMaml/developerXaml.xsd | 145 - newton-cn/bin/v1.0/Schemas/PSMaml/endUser.xsd | 42 - newton-cn/bin/v1.0/Schemas/PSMaml/faq.xsd | 89 - .../bin/v1.0/Schemas/PSMaml/glossary.xsd | 54 - .../bin/v1.0/Schemas/PSMaml/hierarchy.xsd | 206 - newton-cn/bin/v1.0/Schemas/PSMaml/inline.xsd | 182 - .../bin/v1.0/Schemas/PSMaml/inlineCommon.xsd | 212 - .../v1.0/Schemas/PSMaml/inlineSoftware.xsd | 195 - .../bin/v1.0/Schemas/PSMaml/inlineUi.xsd | 166 - .../bin/v1.0/Schemas/PSMaml/shellExecute.xsd | 54 - .../bin/v1.0/Schemas/PSMaml/structure.xsd | 132 - .../v1.0/Schemas/PSMaml/structureGlossary.xsd | 93 - .../bin/v1.0/Schemas/PSMaml/structureList.xsd | 99 - .../Schemas/PSMaml/structureProcedure.xsd | 49 - .../v1.0/Schemas/PSMaml/structureTable.xsd | 132 - .../Schemas/PSMaml/structureTaskExecution.xsd | 178 - newton-cn/bin/v1.0/Schemas/PSMaml/task.xsd | 464 - .../v1.0/Schemas/PSMaml/troubleshooting.xsd | 78 - newton-cn/bin/v1.0/WSMan.Format.ps1xml | Bin 16598 -> 0 bytes newton-cn/bin/v1.0/en-US/powershell.exe.mui | Bin 11776 -> 0 bytes newton-cn/bin/v1.0/getevent.types.ps1xml | Bin 9164 -> 0 bytes newton-cn/bin/v1.0/ko-KR/PSEvents.dll.mui | Bin 39936 -> 0 bytes newton-cn/bin/v1.0/ko-KR/default.help.txt | 112 - newton-cn/bin/v1.0/ko-KR/powershell.exe.mui | Bin 9728 -> 0 bytes newton-cn/bin/v1.0/ko-KR/pspluginwkr.dll.mui | Bin 4608 -> 0 bytes newton-cn/bin/v1.0/ko-KR/pwrshmsg.dll.mui | Bin 4608 -> 0 bytes .../bin/v1.0/ko/powershell_ise.resources.dll | Bin 58368 -> 0 bytes newton-cn/bin/v1.0/powershell.exe | Bin 452608 -> 0 bytes newton-cn/bin/v1.0/powershell.exe.config | 11 - newton-cn/bin/v1.0/powershell_ise.exe | Bin 212992 -> 0 bytes newton-cn/bin/v1.0/powershell_ise.exe.config | 11 - newton-cn/bin/v1.0/pspluginwkr.dll | Bin 174592 -> 0 bytes newton-cn/bin/v1.0/pwrshmsg.dll | Bin 2560 -> 0 bytes newton-cn/bin/v1.0/pwrshsip.dll | Bin 30720 -> 0 bytes newton-cn/bin/v1.0/types.ps1xml | 6689 -------------- newton-cn/bin/v1.0/typesv3.ps1xml | 343 - newton-cn/newton-cn.csproj | 2 +- .../DesignTimeResolveAssemblyReferences.cache | Bin 1948 -> 1948 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7341 -> 7342 bytes newton-cn/obj/Debug/newton-cn.exe | Bin 51200 -> 51200 bytes newton-cn/obj/Debug/newton-cn.pdb | Bin 122368 -> 122368 bytes .../newton-cn.csproj.AssemblyReference.cache | Bin 0 -> 1660 bytes .../newton-cn.csproj.FileListAbsolute.txt | 1 + newton-cn/obj/Release/newton-cn.exe | Bin 48640 -> 48640 bytes newton-cn/obj/Release/newton-cn.pdb | Bin 112128 -> 112128 bytes 730 files changed, 6 insertions(+), 160498 deletions(-) delete mode 100644 newton-cn/bin/v1.0/Certificate.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Diagnostics.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/DotNetTypes.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Event.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Examples/profile.ps1 delete mode 100644 newton-cn/bin/v1.0/FileSystem.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Help.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/HelpV3.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/AppBackgroundTask/AppBackgroundTask.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/AppBackgroundTask/MSFT_BackgroundTask.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/AppBackgroundTask/Microsoft.Windows.AppBackgroundTask.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/AppBackgroundTask/PS_BackgroundTask.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/AppLocker/AppLocker.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/AppVClientCmdlets.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/AppVClientCmdlets.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/AppvClient.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppVClientPowerShell.dll delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppvClientComConsumer.dll delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.ClientProgrammability.Eventing.dll delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppVClientPowerShell.resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppvClientComConsumer.resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Appx/Appx.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Appx/Appx.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Appx/Appx.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Appx/ko-KR/Appx.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/AssignedAccess/ko-KR/AssignedAccessMsg.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/BitLocker/Microsoft.BitLocker.Structures.dll delete mode 100644 newton-cn/bin/v1.0/Modules/BitLocker/ko-KR/BitLocker.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/BitsTransfer/Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheClientSettingData.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheContentServerSettingData.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheHostedCacheServerSettingData.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheNetworkSettingData.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheOrchestrator.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryPublicationCacheFile.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryRepublicationCacheFile.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheSecondaryRepublicationCacheFile.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheStatus.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/CimCmdlets/CimCmdlets.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigCI/ConfigCI.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/ConfigDefender.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpBehavioralNetworkBlockingRules.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpComputerStatus.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpPreference.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpRollback.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpScan.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpSignature.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreat.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatCatalog.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatDetection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpWDOScan.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/ConfigDefenderPerformance.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.wprp delete mode 100644 newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceReport.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/Defender.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpComputerStatus.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpPreference.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpScan.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpSignature.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreat.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatCatalog.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatDetection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Defender/MSFT_MpWDOScan.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimization.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationStatus.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationVerboseLogs.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/DeliveryOptimization/Microsoft.Windows.DeliveryOptimization.AdminCommands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/DirectAccessClientComponents.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/Dism.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/Dism.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/Dism.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/Dism.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/Microsoft.Dism.PowerShell.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Dism/ko/Microsoft.Dism.Powershell.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsClient.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClient.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientCache.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientGlobalSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientServerAddress.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTGlobal_v1.0.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTRule_v1.0.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNrptPolicy_v1.0.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/DnsClient/dnslookup.dll delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/ISE/ise.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ISE/ise.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/International/International.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Kds/Kds.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagement.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagementViews.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/LanguagePackManagement/Microsoft.LanguagePackManagement.Powershell.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/LanguagePackManagement/en/Microsoft.LanguagePackManagement.Powershell.Commands.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/MMAgent/MMAgent.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/MMAgent/ps_mmagent_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/ko-KR/ArchiveResources.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Diagnostics/Microsoft.PowerShell.Diagnostics.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Host/Microsoft.PowerShell.Host.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/LocalAccounts.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/ko/Microsoft.PowerShell.LocalAccounts.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Management/Microsoft.PowerShell.Management.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataAdapter.ps1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtilsHelper.ps1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataV4Adapter.ps1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/ko-KR/Microsoft.PowerShell.ODataUtilsStrings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Security/Microsoft.PowerShell.Security.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Microsoft.WSMan.Management/Microsoft.WSMan.Management.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedHostSettingTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedSettingTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterDefaultTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterTMMappingTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcDefaultTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcLogTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcNetworkSettingTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsStatisticsTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSessionTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSettingTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Formats.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/TestDtc.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/ko-KR/TestDtc.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/MsDtc/ko/Microsoft.Dtc.PowerShell.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapter.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.Helper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.Helper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Format.Helper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetConnection/NetConnection.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetDiagnostics/Get-NetView.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetDiagnostics/NetDiagnostics.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatExternalAddress.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatGlobal.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatSession.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatStaticMapping.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetNat/NetNat.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.Helper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetQos/NetQos.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/Microsoft.Windows.Firewall.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallAddressFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallApplicationFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallDynamicKeywordAddress.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceTypeFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallPortFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallProfile.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallRule.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSecurityFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallServiceFilter.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSetting.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetGPO.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecDospSetting.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecIdentity.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeCryptoSet.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeRule.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeSA.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase1AuthSet.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase2AuthSet.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPolicyChange.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeCryptoSet.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeSA.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecRule.cmdletDefinition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.formats.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSecurity/ko/Microsoft.Windows.Firewall.Commands.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetSwitchTeam/NetSwitchTeam.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetCompartment.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPAddress.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPInterface.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv4Protocol.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv6Protocol.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetNeighbor.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetOffloadGlobalSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetPrefixPolicy.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetRoute.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPConnection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTransportFilter.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPEndpoint.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/NetIPConfiguration.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/NetTCPIP.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetTCPIP/Test-NetConnection.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/NetworkConnectivityStatus.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/CmdletHelpers.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchConfiguration.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchEthernetPort.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchFeature.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchGlobalSettingData.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchVlan.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkSwitchManager/ko-KR/NetworkSwitchManager.Resource.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/NetworkTransition/NetworkTransition.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PKI/pki.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PKI/pki.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/ko-KR/WindowsPackageCab.Strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/CompositeResourceHelper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/DSCResourceHelper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.Schema.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/MSFT_ArchiveResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/MSFT_ArchiveResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/ArchiveProvider.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/MSFT_ArchiveResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/ko-KR/MSFT_EnvironmentResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/ko-KR/MSFT_EnvironmentResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/MSFT_GroupResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/MSFT_GroupResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/ko-KR/MSFT_GroupResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/ko-KR/MSFT_GroupResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/MSFT_LogResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/ko-KR/MSFT_LogResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/ko-KR/MSFT_PackageResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/ko-KR/PackageProvider.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/MSFT_ProcessResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/MSFT_ProcessResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/MSFT_RegistryResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/MSFT_RegistryResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/ko-KR/MSFT_RegistryResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/ko-KR/MSFT_RegistryResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResourceStrings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/ko-KR/MSFT_ScriptResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/ko-KR/MSFT_ScriptResourceStrings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/ko-KR/MSFT_ServiceResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/ko-KR/MSFT_ServiceResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/ko-KR/MSFT_UserResource.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/ko-KR/MSFT_UserResource.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/ko-KR/MSFT_WaitForAll.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAny/MSFT_WaitForAny.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAny/MSFT_WaitForAny.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAny/ko-KR/MSFT_WaitForAny.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/ko-KR/MSFT_WaitForSome.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.schema.mof delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.schema.mfl delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ProcessSet/ProcessSet.Schema.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ProcessSet/ProcessSet.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/RunAsHelper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ServiceSet/ServiceSet.Schema.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ServiceSet/ServiceSet.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.Schema.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsOptionalFeatureSet/WindowsOptionalFeatureSet.Schema.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsOptionalFeatureSet/WindowsOptionalFeatureSet.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ko-KR/RunAsHelper.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Disable-DscDebug.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/DSCFileDownloadManager.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/Microsoft.PowerShell.DSC.FileDownloadManager.dll delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/ko/Microsoft.PowerShell.DSC.FileDownloadManager.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Enable-DscDebug.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DSCLocalConfigurationManager.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfigurationStatus.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDscXMachine.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Remove-DscConfigurationDocument.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Restore-DscConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Stop-DscConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/WebDownloadManager/WebDownloadManager.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDSCxMachine.strings.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDesiredStateConfiguration.Resource.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSScheduledJob/PSScheduledJob.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSScheduledJob/PSScheduledJob.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSScheduledJob/PSScheduledJob.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSWorkflow/PSWorkflow.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSWorkflow/PSWorkflow.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSWorkflow/PSWorkflow.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PSWorkflowUtility/PSWorkflowUtility.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PSWorkflowUtility/PSWorkflowUtility.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/PcsvDevice/CIM_PhysicalComputerSystemView.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/Microsoft.Storage.PersistentMemory.Management.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/PersistentMemory.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/PmemDisk.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/PmemPhysicalDevice.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/ko/Microsoft.Storage.PersistentMemory.Management.Commands.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/PersistentMemory/scmbridge.dll delete mode 100644 newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Resource.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTagTasks_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPortTasks_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/PrintManagement/PrintManagement.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.dll-Help.xml delete mode 100644 newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/ProcessMitigations/ProcessMitigations.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provautologger_add.reg delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provautologger_del.reg delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provcmdlets.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provcommon.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provpackageapi.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/provtrace.wprp delete mode 100644 newton-cn/bin/v1.0/Modules/Provisioning/wiminterop.dll delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ClusteredScheduledTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/ScheduledTasks/ScheduledTasks.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/SecureBoot/SecureBoot.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/Smb.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/Smb.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbBandwidthLimit.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbClientConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbClientNetworkInterface.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbComponent.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbConnection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbGlobalMapping.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbMapping.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConnection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConstraint.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbOpenFile.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbScriptModule.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbServerCertificateMapping.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbServerConfiguration.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbServerNetworkInterface.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbSession.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.Format.Helper.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbShare/en-US/SmbLocalization.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitnessWmiClient.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/StartLayout/GetStartApps.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/StartLayout/StartLayout.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Disk.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/DiskImage.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/FileIntegrity.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/FileServer.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/FileShare.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/FileStorageTier.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/InitiatorId.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/InitiatorPort.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/MaskingSet.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/OffloadDataTransferSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Partition.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/PhysicalDisk.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/ResiliencySetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Storage.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Storage.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Storage.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageCmdlets.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageEnclosure.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageHealth.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageJob.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageNode.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StoragePool.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageProvider.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageReliabilityCounter.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageScripts.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageSetting.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageSubSystem.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/StorageTier.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/TargetPort.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/TargetPortal.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/VirtualDisk.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Storage/Volume.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/TLS/tls.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/TrustedPlatformModule/TrustedPlatformModule.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/UEV/Microsoft.Uev.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/UEV/UEV.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/UEV/UEV.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_EapConfiguration_v1.0.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionIPsecConfiguration_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionProxy_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionRoute_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerApplication_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerDnsConfiguration_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerTrustedNetwork_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTrigger_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnection_v1.0.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnServerAddress_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/VpnClient.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDriverTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDsnTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcPerfCounterTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/MSFT_WdacBidTraceTask_v1.0.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/Wdac.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/Wdac.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/Wdac/Wdac.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/Whea/Microsoft.Windows.Whea.WheaMemoryPolicy.dll delete mode 100644 newton-cn/bin/v1.0/Modules/Whea/Whea.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsDeveloperLicense/WindowsDeveloperLicense.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsErrorReporting/Microsoft.WindowsErrorReporting.PowerShell.dll delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsErrorReporting/WindowsErrorReporting.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsErrorReporting/WindowsErrorReporting.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsSearch/Microsoft.WindowsSearch.Commands.dll delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsSearch/WindowsSearch.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsSearch/WindowsSearch.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsSearch/ko/Microsoft.WindowsSearch.Commands.Resources.dll delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdate.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdateLog.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.psm1 delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUSettings.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/WindowsUpdateProvider.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/iSCSI/iSCSI.psd1 delete mode 100644 newton-cn/bin/v1.0/Modules/iSCSI/iSCSIConnection.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/iSCSI/iSCSISession.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/iSCSI/iSCSITarget.cdxml delete mode 100644 newton-cn/bin/v1.0/Modules/iSCSI/iSCSITargetPortal.cdxml delete mode 100644 newton-cn/bin/v1.0/PSEvents.dll delete mode 100644 newton-cn/bin/v1.0/PowerShellCore.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/PowerShellTrace.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Registry.format.ps1xml delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/ITPro.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml.rld delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml.tbr delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsx delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML.xsl delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML_Style.xsl delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloper.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloperStructure.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/ProviderHelp.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/base.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/baseConditional.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/block.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/blockCommon.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/blockSoftware.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/command.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/conditionSet.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developer.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.rld delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerDscResource.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManaged.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedClass.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedConstructor.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedDelegate.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEnumeration.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEvent.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedField.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedInterface.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedMethod.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedNamespace.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOperator.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOverload.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedProperty.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedStructure.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerReference.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerStructure.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/developerXaml.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/endUser.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/faq.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/glossary.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/hierarchy.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/inline.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/inlineCommon.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/inlineSoftware.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/inlineUi.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/shellExecute.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structure.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structureGlossary.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structureList.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structureProcedure.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structureTable.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/structureTaskExecution.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/task.xsd delete mode 100644 newton-cn/bin/v1.0/Schemas/PSMaml/troubleshooting.xsd delete mode 100644 newton-cn/bin/v1.0/WSMan.Format.ps1xml delete mode 100644 newton-cn/bin/v1.0/en-US/powershell.exe.mui delete mode 100644 newton-cn/bin/v1.0/getevent.types.ps1xml delete mode 100644 newton-cn/bin/v1.0/ko-KR/PSEvents.dll.mui delete mode 100644 newton-cn/bin/v1.0/ko-KR/default.help.txt delete mode 100644 newton-cn/bin/v1.0/ko-KR/powershell.exe.mui delete mode 100644 newton-cn/bin/v1.0/ko-KR/pspluginwkr.dll.mui delete mode 100644 newton-cn/bin/v1.0/ko-KR/pwrshmsg.dll.mui delete mode 100644 newton-cn/bin/v1.0/ko/powershell_ise.resources.dll delete mode 100644 newton-cn/bin/v1.0/powershell.exe delete mode 100644 newton-cn/bin/v1.0/powershell.exe.config delete mode 100644 newton-cn/bin/v1.0/powershell_ise.exe delete mode 100644 newton-cn/bin/v1.0/powershell_ise.exe.config delete mode 100644 newton-cn/bin/v1.0/pspluginwkr.dll delete mode 100644 newton-cn/bin/v1.0/pwrshmsg.dll delete mode 100644 newton-cn/bin/v1.0/pwrshsip.dll delete mode 100644 newton-cn/bin/v1.0/types.ps1xml delete mode 100644 newton-cn/bin/v1.0/typesv3.ps1xml create mode 100644 newton-cn/obj/Release/newton-cn.csproj.AssemblyReference.cache diff --git a/.vs/newton-cn/v16/.suo b/.vs/newton-cn/v16/.suo index 61a576dad4025d929501f88072ea335b47442c47..2266e8d4b700f58d55f21468b1f59d44dad1fe86 100644 GIT binary patch delta 4985 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 kBNm(+jk`Y|@o#0m@P800000 diff --git a/newton-cn/Form6.cs b/newton-cn/Form6.cs index 2994bd2..8ef09eb 100644 --- a/newton-cn/Form6.cs +++ b/newton-cn/Form6.cs @@ -46,7 +46,7 @@ namespace newton_cn dataGridView1.Columns["상품명"].Width = 180; dataGridView1.Columns["비율"].Width = 80; dataGridView1.Columns["개수"].Width = 55; - dataGridView1.Columns["매출"].Width = 105; + dataGridView1.Columns["매출"].Width = 85; } catch (Exception) { @@ -64,7 +64,7 @@ namespace newton_cn try { row.DefaultCellStyle.BackColor = Color.FromName(colorStr); - row.DefaultCellStyle.Font = new Font(dataGridView1.Font.FontFamily, 10, FontStyle.Bold); + row.DefaultCellStyle.Font = new Font(dataGridView1.Font.FontFamily, 9, FontStyle.Bold); } catch { @@ -97,7 +97,7 @@ namespace newton_cn dataGridView1.Columns["상품명"].Width = 180; dataGridView1.Columns["비율"].Width = 80; dataGridView1.Columns["개수"].Width = 55; - dataGridView1.Columns["매출"].Width = 105; + dataGridView1.Columns["매출"].Width = 85; } catch (Exception) { @@ -117,7 +117,7 @@ namespace newton_cn try { row.DefaultCellStyle.BackColor = Color.FromName(colorStr); - row.DefaultCellStyle.Font = new Font(dataGridView1.Font.FontFamily, 10, FontStyle.Bold); + row.DefaultCellStyle.Font = new Font(dataGridView1.Font.FontFamily, 9, FontStyle.Bold); } catch { diff --git a/newton-cn/bin/Debug/newton-cn.exe b/newton-cn/bin/Debug/newton-cn.exe index 03dcd18f661674a477231ecc80d8d6defe3a311f..0f72d966fa1be4be5fcd4963f8e45d8baed00fa3 100644 GIT binary patch delta 96 zcmZpez}zr_c|r$EvEZ)58+$6*8AB(taV%pL*u0h_f)T{wS`FlE;(9k-;Pabh-U1)i z_;zvhhi18bzO{M7q8?tBkpKFJCOd2}5yvJ*D9Y^V_j066(5 A{r~^~ delta 96 zcmZpez}zr_c|r%vt1UNvZ|tdLXUv?;#<7f1Ve?v!2u2WxYc-IwiR;~TfwYaEbn;tY zdF|WqLTUND8;zScEb8H9ag(@pbh5(+69K+0d~Q+C?EIU8m08yF-JZC)WkZcP0J`)k AJOBUy diff --git a/newton-cn/bin/Debug/newton-cn.pdb b/newton-cn/bin/Debug/newton-cn.pdb index 170a19f4b560ba1c53f7f0d6fa014981ad29126a..308e9111518b5eba1e40aca39fb5828b25a18355 100644 GIT binary patch delta 218 zcmZqJ!``rmeS-&=LhP&}eWzQO?`&8TTbo~g-?LR~2m7{J=}QyRbr)^^qc?M-;|#`4 zJj5!LSYX29q}S8Gd5MqX4&KF#EsGgj&6!%hGqu)k|HQ)ho{?9Eu~~+xxqz|xE>ny8 z_IGTI3apG4)A@NAy%`I(NAobMGeNk9)3@+3DlwL9zs|>avKMUV_9b%|6SO5l{_7uN fWME*(_sM&HYO;mng8Jn1TWqouw#%Ggd?E?}CkR#Q delta 218 zcmZqJ!``rmeS-&=!v5K-Z$&rwKX{h&dim6nN5!u~K3rSSpH_F%kx%d7&$N{r9cM6Z z;vrU{!~zo*%go*ro0s@F?%-X**s_GN)q<(z2UBa^_D?K~?-_Yz8JlI9nhP15?=iJ# zY=6hbsKCl-Ih~(}(VMYwdo&NDIunFzIDHErqY`83_Un9%Cwsw$ZeKEoF+p3xP2$#3 fMg|53zAb!iQP1rBn}U^D*7Mz-xLxK1;}cN;Ky_MY diff --git a/newton-cn/bin/Release/newton-cn.exe b/newton-cn/bin/Release/newton-cn.exe index 6233d1a50aa77a6df2a038df6216f7b0f1e7f1c7..57a25b2c9bd92b42de15c60d55c9dd2de63a830d 100644 GIT binary patch delta 100 zcmZqp!_@GHX+j4}eE8Al8+*2}F@{cdWS_t&u=x_Z2P2pxGufQ80w}P7GofGLdi2e< z{Y%nZ*L!OzCSPvh->fjxfrq7fqu%?;DN9WRv>xn>xojckxo!G-*C=b_mz!5CjgSBU D(77nD delta 100 zcmZqp!_@GHX+j4}cz*5jjXhh~7&9k3vQJ=C*nElIgAvS;nQYEk0TkH4nb0q=|Myzw zX$C$Hb1p@*^KAaEx>;eS0}so>)@ko1rz|xQsGPe&g~>V8WpRXs)^+zKE}K^@jgSBU DuEr;Y diff --git a/newton-cn/bin/Release/newton-cn.pdb b/newton-cn/bin/Release/newton-cn.pdb index a61b6ba30a061d80f137d4b1cdda5cc563504a29..ea904ffdd3825fb8ea8feae5de20132a65693b62 100644 GIT binary patch delta 173 zcmZp8!`ASIZG#7gLhP&}eWzQO?`&8TTbo~g-?LR~2m7{J=}QyRbr)^^qc?M-;|#`4 zTpnD+DHJO)V{y{!>EB%8Gi?E*#bo}s+KdI8t>5-Df;qC2U%V4yEZO|~U1cX&-S&zK o#vW~n>WzBu85tNDv>xn>xojckxo!G-*C=b_m)m8QFg_6k0N6uJZ~y=R delta 173 zcmZp8!`ASIZG#7g!v5K-Z$&rwKX{h&dim6nN5!u~K3rSSpH_F%kx%d7&$N{r9cM6Z z;_~1kPN7(d8H;6R?}^P7KGPO3T2AJFtIb%r+4^liBbXyQ`NcaS#?sBd-&J;k)orh+ oVC>PBSlBx49U}t+L*?8JDooCyE{h{9w641^aoH}jgz - - - - - - - CertificateProviderTypes - - System.Security.Cryptography.X509Certificates.X509Certificate2 - System.Security.Cryptography.X509Certificates.X509Store - Microsoft.PowerShell.Commands.X509StoreLocation - - - - - - - SignatureTypes-GroupingFormat - - - - - - 4 - - - - split-path $_.Path - - - - - - - - - - - - - - ThumbprintTable - - System.Security.Cryptography.X509Certificates.X509Certificate2 - - - PSParentPath - FileSystemTypes-GroupingFormat - - - - - 41 - - - - - - - - Thumbprint - - - Subject - - - - - - - - ThumbprintList - - CertificateProviderTypes - - - - - - Microsoft.PowerShell.Commands.X509StoreLocation - - - - Location - - - StoreNames - - - - - - System.Security.Cryptography.X509Certificates.X509Store - - - - Name - - - - - - - $_.SubjectName.Name - - - - $_.IssuerName.Name - - - - Thumbprint - - - FriendlyName - - - NotBefore - - - NotAfter - - - Extensions - - - - - - - - ThumbprintWide - - CertificateProviderTypes - - - PSParentPath - FileSystemTypes-GroupingFormat - - - - - - ThumbPrint - - - - - - - PSThumbprintTable - - System.Management.Automation.Signature - - - split-path $_.Path - SignatureTypes-GroupingFormat - - - - - - 41 - - - - - - - - - - - $_.SignerCertificate.Thumbprint - - - Status - - - split-path $_.Path -leaf - - - - - - - - PSThumbprintWide - - System.Management.Automation.Signature - - - split-path $_.Path - SignatureTypes-GroupingFormat - - - - - - "$(split-path $_.Path -leaf): $($_.Status)" - - - - - - - PathOnly - - CertificateProviderTypes - - - - - - - PSPathPath - - - - - - Microsoft.PowerShell.Commands.X509StoreLocation - - - - PSPathPath - - - - - - System.Security.Cryptography.X509Certificates.X509Store - - - - PSPath - - - - - - - - System.Security.Cryptography.X509Certificates.X509CertificateEx - - System.Security.Cryptography.X509Certificates.X509CertificateEx - - - PSParentPath - FileSystemTypes-GroupingFormat - - - - - 41 - - - - - - - - Thumbprint - - - Subject - - - - - - - - diff --git a/newton-cn/bin/v1.0/Diagnostics.Format.ps1xml b/newton-cn/bin/v1.0/Diagnostics.Format.ps1xml deleted file mode 100644 index 6505b3e116b87514c51ede73d66a637ea51094d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4994 zcmeHL+fLg+5S`~r{fD4F7fLJj$%+Imw2|6?NCnR!7l@RE$T33s`L^fmX1hCUuVWyH zs#KPhWIZ!`=FDxKUq3VXBsVgbu}tJjZY7t#6!^}yw!D^Cf9{sFB$FL^i>oDXHe4+^ zmyR6C1!OW6hl}imt53nQj!>Afsf-U} za%MWkk?C2vsmqjBTqjyH)v;V&XW)S|VF5-qRZ?}nb&$OyWON-qzgxYHdIa9esp&NA zw>frS1zoqg!qf7p$osugb>{ruj5&-e>%`Ssa|=Y1q5pH5RC#>{CfH9W$d@Zbg1MKL zerlg}=2v-Kmn&MkSvJ?{aHdu5r*-Nk7$x0o)X~lo>o#8gETFq1?fGYMG`!7bbJ*@x zp77g0e`qg`k!|eD9poI(B$m(k6jb)kbJ@(lxOzA@SqFdHIU}4WAMP<@Z2Y!4^~#y; zI!-u+bS4vpyJE)gr)~ZD&xT`@o%`QlL+4ePOI7{V=7FF0x|656vSTgGL9O}HPBbUz zbbM3dI}7Lh0KG5A3ZwCSGd_+kXM^h#+dJ2E;V<8pU!w2fo4lXA&l`2!0jgr2>I61l l!n1U - - - - - - System.CodeDom.Compiler.CompilerError - - System.CodeDom.Compiler.CompilerError - - - - - - - ErrorText - - - Line - - - Column - - - ErrorNumber - - - LineSource - - - - - - - - - System.Reflection.Assembly - - System.Reflection.Assembly - - - - - - - 6 - - - - 14 - - - - - - - - GlobalAssemblyCache - - - ImageRuntimeVersion - - - Location - - - - - - - - System.Reflection.AssemblyName - - System.Reflection.AssemblyName - - - - - - 14 - - - - - - - - Version - - - Name - - - - - - - - System.Globalization.CultureInfo - - System.Globalization.CultureInfo - - - - - - 16 - - - 16 - - - - - - - - LCID - - - Name - - - DisplayName - - - - - - - - System.Diagnostics.FileVersionInfo - - System.Diagnostics.FileVersionInfo - - - - - - 16 - - - 16 - - - - - - - - ProductVersion - - - FileVersion - - - FileName - - - - - - - - - System.Diagnostics.EventLogEntry - - System.Diagnostics.EventLogEntry - - - - - - - Right - 8 - - - - 13 - - - - 11 - - - - 20 - - - - Right - 12 - - - - - - - - - - Index - - - TimeGenerated - {0:MMM} {0:dd} {0:HH}:{0:mm} - - - $_.EntryType - - - Source - - - InstanceID - - - Message - - - - - - - - - System.Diagnostics.EventLog - - System.Diagnostics.EventLog - - - - - - - Right - 8 - - - - Right - 6 - - - - 18 - - - - Right - 10 - - - - - - - - - - - $_.MaximumKilobytes.ToString('N0') - - - MinimumRetentionDays - - - OverflowAction - - - $_.Entries.Count.ToString('N0') - - - Log - - - - - - - - - System.Version - - System.Version - - - - - 6 - - - 6 - - - 6 - - - 8 - - - - - - - Major - - - Minor - - - Build - - - Revision - - - - - - - - System.Drawing.Printing.PrintDocument - - System.Drawing.Printing.PrintDocument - - - - - - 10 - - - 10 - - - - - - - - Color - - - Duplex - - - Name - - - - - - - - - Dictionary - - System.Collections.DictionaryEntry - - - - - 30 - - - - - - - - Name - - - Value - - - - - - - - ProcessModule - - System.Diagnostics.ProcessModule - - - - - - 10 - right - - - 50 - - - - - - - - $_.Size - - - ModuleName - - - FileName - - - - - - - - process - - System.Diagnostics.Process - - - - - - 7 - right - - - - 7 - right - - - - 8 - right - - - - 10 - right - - - - 5 - right - - - - 8 - right - - - 6 - right - - - 3 - right - - - - - - - - HandleCount - - - [long]($_.NPM / 1024) - - - [long]($_.PM / 1024) - - - [long]($_.WS / 1024) - - - [long]($_.VM / 1048576) - - - -if ($_.CPU -ne $()) -{ - $_.CPU.ToString("N") -} - - - - Id - - - SI - - - ProcessName - - - - - - - - ProcessWithUserName - - System.Diagnostics.Process#IncludeUserName - - - - - - 7 - right - - - - 10 - right - - - - 5 - right - - - - 8 - right - - - 6 - right - - - 17 - - - - - - - - HandleCount - - - [long]($_.WS / 1024) - - - [long]($_.VM / 1048576) - - - - if ($_.CPU -ne $()) - { - $_.CPU.ToString("N") - } - - - - Id - - - UserName - - - ProcessName - - - - - - - - DirectoryEntry - - System.DirectoryServices.DirectoryEntry - - - - - - - - distinguishedName - - - - path - - - - - - - - PSSnapInInfo - - System.Management.Automation.PSSnapInInfo - - - - - - - - Name - - - - PSVersion - - - - Description - - - - - - - - PSSnapInInfo - - System.Management.Automation.PSSnapInInfo - - - - - - 30 - Left - - - - 20 - Left - - - - 30 - Left - - - - - - - Name - - - PSVersion - - - Description - - - - - - - - Priority - - System.Diagnostics.Process - - - PriorityClass - - - - - - 20 - - - 10 - right - - - 13 - right - - - 12 - right - - - - - - - ProcessName - - - Id - - - HandleCount - - - WorkingSet64 - - - - - - - - StartTime - - System.Diagnostics.Process - - - $_.StartTime.ToShortDateString() - - - - - - 20 - - - 10 - right - - - 13 - right - - - 12 - right - - - - - - - ProcessName - - - Id - - - HandleCount - - - WorkingSet64 - - - - - - - - service - - System.ServiceProcess.ServiceController - - - - - 8 - - - 18 - - - 38 - - - - - - - Status - - - Name - - - DisplayName - - - - - - - - System.Diagnostics.FileVersionInfo - - System.Diagnostics.FileVersionInfo - - - - - - - - - OriginalFileName - - - FileDescription - - - ProductName - - - Comments - - - CompanyName - - - FileName - - - FileVersion - - - ProductVersion - - - IsDebug - - - IsPatched - - - IsPreRelease - - - IsPrivateBuild - - - IsSpecialBuild - - - Language - - - LegalCopyright - - - LegalTrademarks - - - PrivateBuild - - - SpecialBuild - - - FileVersionRaw - - - ProductVersionRaw - - - - - - - - - - - System.Diagnostics.EventLogEntry - - System.Diagnostics.EventLogEntry - - - - - - - - - Index - - - EntryType - - - InstanceID - - - Message - - - Category - - - CategoryNumber - - - ReplacementStrings - - - Source - - - TimeGenerated - - - TimeWritten - - - UserName - - - - - - - - - - System.Diagnostics.EventLog - - System.Diagnostics.EventLog - - - - - - - - Log - - - EnableRaisingEvents - - - MaximumKilobytes - - - MinimumRetentionDays - - - OverflowAction - - - - - - - - System.TimeSpan - - System.TimeSpan - - - - - - - - - Days - - - Hours - - - Minutes - - - Seconds - - - Milliseconds - - - Ticks - - - TotalDays - - - TotalHours - - - TotalMinutes - - - TotalSeconds - - - TotalMilliseconds - - - - - - - - - System.TimeSpan - - System.TimeSpan - - - - - - - - - Days - - - Hours - - - Minutes - - - Seconds - - - Milliseconds - - - - - - - - - System.TimeSpan - - System.TimeSpan - - - - - - TotalMilliseconds - - - - - - - - System.AppDomain - - System.AppDomain - - - - - - - - - FriendlyName - - - Id - - - ApplicationDescription - - - BaseDirectory - - - DynamicDirectory - - - RelativeSearchPath - - - SetupInformation - - - ShadowCopyFiles - - - - - - - - - System.ServiceProcess.ServiceController - - System.ServiceProcess.ServiceController - - - - - - - - - Name - - - DisplayName - - - Status - - - DependentServices - - - ServicesDependedOn - - - CanPauseAndContinue - - - CanShutdown - - - CanStop - - - ServiceType - - - - - - - - - System.Reflection.Assembly - - System.Reflection.Assembly - - - - - - - CodeBase - - - EntryPoint - - - EscapedCodeBase - - - FullName - - - GlobalAssemblyCache - - - HostContext - - - ImageFileMachine - - - ImageRuntimeVersion - - - Location - - - ManifestModule - - - MetadataToken - - - PortableExecutableKind - - - ReflectionOnly - - - - - - - - System.Collections.DictionaryEntry - - System.Collections.DictionaryEntry - - - - - - - Name - - - Value - - - - - - - - process - - System.Diagnostics.Process - - - - - - ProcessName - - - - - - - DateTime - - System.DateTime - - - - - DateTime - - - - - - System.Security.AccessControl.ObjectSecurity - - System.Security.AccessControl.ObjectSecurity - - - - - - - - - - - - - - - - - Path - - - Owner - - - AccessToString - - - - - - - - System.Security.AccessControl.ObjectSecurity - - System.Security.AccessControl.ObjectSecurity - - - - - - - Path - - - Owner - - - Group - - - - AccessToString - - - - AuditToString - - - Sddl - - - - - - - - System.Management.ManagementClass - - System.Management.ManagementClass - - - __Namespace - - - - - - 35 - - - 20 - - - - - - - - - Name - - - Methods - - - Properties - - - - - - - - Microsoft.Management.Infrastructure.CimClass - - Microsoft.Management.Infrastructure.CimClass - - - $_.CimSystemProperties.Namespace - - - - - - - 35 - - - 20 - - - - - - - - - CimClassName - - - CimClassMethods - - - CimClassProperties - - - - - - - - System.Guid - - System.Guid - - - - - - - Guid - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PingStatus - - System.Management.ManagementObject#root\cimv2\Win32_PingStatus - - - - - - 13 - - - - 15 - - - - 16 - - - - 40 - - - - 8 - - - - 9 - - - - - - - __Server - - - Address - - - IPV4Address - - - IPV6Address - - - BufferSize - - - ResponseTime - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus - - - - - - 13 - - - - 15 - - - - 16 - - - - 40 - - - - 8 - - - - 9 - - - - - - - ComputerName - - - Address - - - IPV4Address - - - IPV6Address - - - BufferSize - - - ResponseTime - - - - - - - - System.Management.ManagementObject#root\default\SystemRestore - - System.Management.ManagementObject#root\default\SystemRestore - - - - - - 22 - - - - 30 - - - - 17 - - - - 17 - - - - 22 - - - - - - - - return $_.ConvertToDateTime($_.CreationTime) - - - - Description - - - SequenceNumber - - - - $eventType = $_.EventType; - if($_.EventType -eq 100) - {$eventType = "BEGIN_SYSTEM_CHANGE";} - if($_.EventType -eq 101) - {$eventType = "END_SYSTEM_CHANGE";} - if($_.EventType -eq 102) - {$eventType = "BEGIN_NESTED_SYSTEM_CHANGE";} - if($_.EventType -eq 103) - {$eventType = "END_NESTED_SYSTEM_CHANGE";} - return $eventType; - - - - - $RestorePointType = $_.RestorePointType; - if($_.RestorePointType -eq 0) - { $RestorePointType = "APPLICATION_INSTALL";} - if($_.RestorePointType -eq 1) - { $RestorePointType = "APPLICATION_UNINSTALL";} - if($_.RestorePointType -eq 10) - { $RestorePointType = "DEVICE_DRIVER_INSTALL";} - if($_.RestorePointType -eq 12) - { $RestorePointType = "MODIFY_SETTINGS";} - if($_.RestorePointType -eq 13) - { $RestorePointType = "CANCELLED_OPERATION";} - return $RestorePointType; - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/default/SystemRestore - - Microsoft.Management.Infrastructure.CimInstance#root/default/SystemRestore - - - - - - 22 - - - - 30 - - - - 17 - - - - 17 - - - - 22 - - - - - - - - return $_.ConvertToDateTime($_.CreationTime) - - - - Description - - - SequenceNumber - - - - $eventType = $_.EventType; - if($_.EventType -eq 100) - {$eventType = "BEGIN_SYSTEM_CHANGE";} - if($_.EventType -eq 101) - {$eventType = "END_SYSTEM_CHANGE";} - if($_.EventType -eq 102) - {$eventType = "BEGIN_NESTED_SYSTEM_CHANGE";} - if($_.EventType -eq 103) - {$eventType = "END_NESTED_SYSTEM_CHANGE";} - return $eventType; - - - - - $RestorePointType = $_.RestorePointType; - if($_.RestorePointType -eq 0) - { $RestorePointType = "APPLICATION_INSTALL";} - if($_.RestorePointType -eq 1) - { $RestorePointType = "APPLICATION_UNINSTALL";} - if($_.RestorePointType -eq 10) - { $RestorePointType = "DEVICE_DRIVER_INSTALL";} - if($_.RestorePointType -eq 12) - { $RestorePointType = "MODIFY_SETTINGS";} - if($_.RestorePointType -eq 13) - { $RestorePointType = "CANCELLED_OPERATION";} - return $RestorePointType; - - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering - - System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering - - - - - - 13 - - - - 16 - - - - 13 - - - - 20 - - - - 26 - - - - - - - __SERVER - - - Description - - - HotFixID - - - InstalledBy - - - InstalledOn - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering - - - - - - 13 - - - - 16 - - - - 13 - - - - 20 - - - - 26 - - - - - - - ComputerName - - - Description - - - HotFixID - - - InstalledBy - - - InstalledOn - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process - - - - - - - - - 16 - - - - - - - - - - - - - - - - ProcessId - - - Name - - - HandleCount - - - WorkingSetSize - - - VirtualSize - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem - - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - Name - - - PrimaryOwnerName - - - Domain - - - TotalPhysicalMemory - - - Model - - - Manufacturer - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - DeviceID - - - Name - - - Caption - - - MaxClockSpeed - - - SocketDesignation - - - Manufacturer - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication - - - - - - - - - 16 - - - - - - - - - - AppID - - - Name - - - InstallDate - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP - - - - - - - - - 16 - - - - - - - - - - - - - - - - SettingID - - - Name - - - ScreenSaverActive - - - ScreenSaverSecure - - - ScreenSaverTimeout - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - DeviceID - - - Name - - - DisplayType - - - MonitorManufacturer - - - ScreenHeight - - - ScreenWidth - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress - - - - - - 16 - - - - - - - - - - - - - Name - - - MemoryType - - - Status - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive - - - - - - - - - - - - - - - - - - - - - - - - DeviceID - - - Caption - - - Partitions - - - Size - - - Model - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota - - - - - - - - - - - - - - - - - - - - - DiskSpaceUsed - - - Limit - - - QuotaVolume - - - User - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment - - - - - - 16 - - - - - - - - - - - - - Name - - - UserName - - - VariableValue - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory - - - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - Hidden - - - Archive - - - Writeable - - - LastModified - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group - - - - - - - - - 16 - - - - - - - - - - - - - SID - - - Name - - - Caption - - - Domain - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController - - - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - Status - - - StatusInfo - - - ProtocolSupported - - - Manufacturer - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource - - - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - IRQNumber - - - Hardware - - - TriggerLevel - - - TriggerType - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob - - - - - - - - - 16 - - - - - - - - - - - - - - - - JobId - - - Name - - - Owner - - - Priority - - - Command - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup - - - - - - 16 - - - - - - - - - - Name - - - GroupOrder - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk - - - - - - - - - - - - 16 - - - - 16 - - - - - - - - - - - - - DeviceID - - - DriveType - - - ProviderName - - - VolumeName - - - Size - - - FreeSpace - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - LogonId - - - Name - - - LogonType - - - StartTime - - - Status - - - AuthenticationPackage - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray - - - - - - 16 - - - - - - - - - - - - - - - - Name - - - MemoryDevices - - - MaxCapacity - - - Model - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice - - - - - - - - - - - - - - - - - - - - - DeviceType - - - SerialNumber - - - Enabled - - - Description - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem - - - - - - - - - - - - - - - - - - - - - - - - - - - SystemDirectory - - - Organization - - - BuildNumber - - - RegisteredUser - - - SerialNumber - - - Version - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition - - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - Name - - - NumberOfBlocks - - - BootPartition - - - PrimaryPartition - - - Size - - - Index - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector - - - - - - - - - - - - - - - - - - - - - - - - Tag - - - PortType - - - ConnectorType - - - SerialNumber - - - ExternalReferenceDesignator - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - SettingID - - - Caption - - - State - - - VolumePath - - - DefaultLimit - - - DefaultWarningLimit - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController - - - - - - 16 - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - DriverName - - - Status - - - StatusInfo - - - ProtocolSupported - - - Manufacturer - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - ProcessId - - - Name - - - StartMode - - - State - - - Status - - - ExitCode - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount - - - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - Caption - - - AccountType - - - SID - - - Domain - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol - - - - - - 16 - - - - - - - - - - - - - Name - - - Caption - - - Status - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter - - - - - - - - - 16 - - - - - - - - - - - - - DeviceID - - - Name - - - AdapterType - - - ServiceName - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration - - - - - - 16 - - - - - - - - - - - - - - - - ServiceName - - - DHCPEnabled - - - Index - - - Description - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain - - - - - - 16 - - - - - - - - - - - - - DomainName - - - DnsForestName - - - DomainControllerName - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer - - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - Name - - - ShareName - - - SystemName - - - PrinterState - - - PrinterStatus - - - Location - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob - - - - - - - - - 16 - - - - - - - - - - - - - - - - - - - - - - JobId - - - Name - - - JobStatus - - - Owner - - - Priority - - - Size - - - Document - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product - - - - - - 16 - - - - - - - - - - - - - - - - - - - Name - - - Caption - - - Vendor - - - Version - - - IdentifyingNumber - - - - - - - - System.Net.NetworkCredential - - System.Net.NetworkCredential - - - - - - - 50 - - - - 50 - - - - - - - UserName - - - Domain - - - - - - - - System.Management.Automation.PSMethod - - System.Management.Automation.PSMethod - - - - - - - - - - - - - - $_.OverloadDefinitions | Out-String - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#__PartialCIMInstance - - Microsoft.Management.Infrastructure.CimInstance#__PartialCIMInstance - - - - - - - - - - $str = $_ | Microsoft.PowerShell.Utility\Format-List -Property * | Microsoft.PowerShell.Utility\Out-String - $str - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Event.Format.ps1xml b/newton-cn/bin/v1.0/Event.Format.ps1xml deleted file mode 100644 index 510b04c5246607032f99786e39dd42ef9d8acd71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10112 zcmeHNTW`}a6h6;L{D+BmHp&AUQrH9=f=L^oZGz|0bzMc8O-py<#{=K7d+;TR>m=<^ zX*6|S9s9G-=i_tBe*a2nm+omoDQ(a#4e6S48q+0Z^oE{Mk2dKA+6_F(Xn_7RJk4mN zp5D-u&gnUAs}Z}jLr>`mCA6pJpJU{RZh+XwIE|@CYygjc68eh%A>GkFe)ISY9~qm^ z@QR~d6nQRfLZ7hW1c*B`+&*@Z0ym*8>lyD==J>7I*$Hq`dtK{f^uTCOUJ|8_62a6;9VsY2~g+ zYa_Ci6`OH@Jq~e;>h4f*rJaXgPkur5+a%!aPQf%sID6ony?~BQ_+;C8NPiFV-PM^g zPTR@+?-@Oq#ZDc6a^}T0q>+cvL(U&k71id522<#ziR(JuEb?jhgt$EduQ`4=R~Raf zzgk*4-+I)w$S$JmgJQi#2qVUix$|S9d7dE|ueO(EQJTp;!!~vO@?6bvSzSS&g`aJg zu`74ZK8xzCH;iC%v6$1Bm8G?PUXv)S49E7&HfC6p1j%m`vh!eFYdAtY#d$gNXFm-w z<>ShCH&=Y!DqqqXuqv4%*S>7_j$qsGRZPcu_zC{{362jCRdc#JL&df`QBz-&%+I!kTao#xYf)^3*l5MJ z@NSF}6JN;flC~NxHsTQ^X>CN?bNoMfa?xk4R^%LeQqBCkpi3LhLE=1A$FHziY(xB3 zdx(zFB9qb+VpQM##l1a}HT~B06J>U^+3lQ<8|#N;$1bAlk>Y(w2qng^x$~JXT|4GF zZ8=js!_AvTB5AvvS>6q6Yhm7=a_wk}?BWa`ZZ-Rh&y?jPiY;e4W8^Q>hHpG&cDr{B zK1#g4yAl~`78fPS-UPAy7P$ME|1D%2AIB;#R<0uR%jZe^5SAmOAF~{MdH#6y`TC5y z|6o=j(iMx2t!f6iewZ&=uecJyl{#&K+gX@0q$V+l>_#kltSz?Jm$|VKhpgEw-mt5i YybFm&_TgQt{%?)P>D9_A*4lRc0XIIbs{jB1 diff --git a/newton-cn/bin/v1.0/Examples/profile.ps1 b/newton-cn/bin/v1.0/Examples/profile.ps1 deleted file mode 100644 index 3c16665..0000000 --- a/newton-cn/bin/v1.0/Examples/profile.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# -# THIS SAMPLE CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, -# WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -# IF THIS CODE AND INFORMATION IS MODIFIED, THE ENTIRE RISK OF USE OR RESULTS IN -# CONNECTION WITH THE USE OF THIS CODE AND INFORMATION REMAINS WITH THE USER. \ No newline at end of file diff --git a/newton-cn/bin/v1.0/FileSystem.format.ps1xml b/newton-cn/bin/v1.0/FileSystem.format.ps1xml deleted file mode 100644 index f91b8dcac3e6cf86f59069c44b9fe3bffa1d6603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25306 zcmeHPZEqVz5ZZf|#X=9!nB-P^l={%)JE&7bDXoSMx1Zbs(PjLnI;Fz4ngvtjO= zmiZLN40q1W5z3Eo_uRa+cVC-{d13CFFKvyl&8B(JyldL#eU#lrn@?`UA9)&>Um?L5 z{~3OVkoOfN=G6qZ#TJx8 z`Vt99Yhq=(fE4cjiM zad;9vVk_KF(Az8AB^QrzoWNe5;CPDC%zTUAV~hF-<&UhyP76D>bci}m0~z`t9>jq9 znbk|n_Q8I(QS%l0y+qBIK#y2{1U^5;@hQrVaOVON6EWUn{Y$jqFD<}HK#Vfe0jKmB zPmA_LK8V<*^`v9q$$t4ifOLD%c832Bdh45gvx}>3(}SLQ)-he2WvJDK#65F>S{=08 z!+F=1vvnWkJ@X8uY{mK;sKq;^zJcR&oUykaP#oCn4%!@8`UCU5<)()oT#w)5_zhaH z?>lJw1XS627cDaUerJ2!1?|IWf8>n4IT`kB=^b0rg*5xV41R=5<+Bdrv`&=#U#CK-?VK#JY>~J@iN<4sdn| z&4{$$S{}%isJ(Gi2F9%aE zxEW)?C*YK0lZ;gKaYhYBgx7(eyBhR${!>j!^pV_ zJ8@&vA)?k8eT`5)m`2Vqc)ADdr7m?MH1fx`YE|C5wDc`}51NY>^xlJJcfg^HAdHh& zD0fkq+zGFqMj4k?`xbQS_o#V{>+xPx_aT;~HqT15{60_mz?A=G7$f(A_ZIwZA6j;P zK7bGQ>@~*%#*{ApWyGLQmQ(!zHM}o)^qo&kpv?
ogsUWkQIlVe+1s_0GIlUT|a z96h!@zsAVxGA=#-r`x>rEXOubV}>??RA)GMnVyreoOhv+KZX={VfV!B1YR1$EKebJ zT}=5Z5@}*oV&x(Ay=h#jhe5oLN5CQ_HpM8+D{sT{M>bQV{~zO=_-~reY+Nk9r@e0; z{nY!bKr_z^qw@%}HfE_ESQ~TBGt4@e!%M8?>`i-E3!^pX3qw0&kj%V=_MFAhCwz{( z0lHhbCS6Uh$aDMFTYrb$QwN;UI4|JLWNb6i1C%qX=JMQU`j%6OaW#bU%N|b529FQaC8k~!qfRhRIa0={>%x^2`S@8JK z{EV@^4?gx@tpI_7RH^?R7=$7N6_W${E6*n=Y}mCc}eld!tCauc?fFEi#PE1 zv7H?VSIaoMF?;oBv)}8sHIB(6%-;8{WsjETU6fUiy~`SL?!ls(9dnk$d7i3d4t2-( z7`>ECB;PhAFLG_-`P1xu$%pj#TP6GDddDtim|PQEJkt%icn0gI7wq8oh4lokvbh!PUSmjFIJSh41+6)$>p^w)?D{ z{ObPo4A|4q$V%UGB!&8tv{g1xMQ)d!aHa7QTJ_n{W^{BTpYc{@5_(B>v;+A7$K9PCwI{k12D`q0KQzwPsJcJy&{%(|obm#{|p#QBxtZr^qVLkez6XX+EJT zb1p&IxWcoET!v3MM$>tOFE2w=QdSN(8_cyPL1w5P8`^Iqh!S? zS*-U|cNV9Xnla5%WMmm))|-mSEQR9ODzl+fr1Es-TFb0QMxkGQR20hk*e=P9^ticL z2Bmw{=b@c7FXgH*T*dm%55Y>@PgqxZi1{&}(YTd9uG;*Cy&ZS3$KzA;1|w>Q>-)I= z5?5{w#;pUz$JQ1`*^8hbQa!dSH(bN1*M4H#H?#Ibi&+NRx7iZkK~@m=Pp+KnQ8!+* z&S)v#e4FtT8JJzg(UF-RC5_j*i5Sk;P1Ug~q!^CxsUvb3jg%ZAY#+|bi^oQ`kQIwq zjq>|qDeILWL4rq(t6oz|Thm&v1nE(nSgw90h))bS+fMN!t$C+?X}ws6pQn-gPXD{HG0n=7BCt!B-tS#P=?@8s^M-~P*H);?KoS6u78 z#IpD4ks9}((OkZ9>Ct+RT; zr0A%%CP-D&S)S@F@{7?E`eixSI#(5xW{+jKNyb&Y+u){0Es^y)EKZQS&ADpRxRqJj za`V$>qu45O;i$X(eDwC>v;6$CIc$n3tul+!{Y(Co`b0^xzm%15_EY}6XuY#oR?YZa zXp+1`+T*%@o;2^R;hVU#*zLiqyRTSUSMgoRf#fJVJV)wTNxl5rQ)+5n5YH#&nGz#Q zyjGpLGARnK_2keLL^D;N(RnQEQtUB}i z9`e|gWxdO@YvH0D?1j_stZteg?7p}+<|n&yr=PZm_3CQp`uwWMCsQ*W;rjYA9eGAh z|2?vA6Q3YQxWbyWyq7}x#CFP~x6icdM}zrZpXZcsTl;4;A(E}a_hIuCC}FiY!4{Hr zR+n|X+eZ68v0VLb8*ksC#gtpPk959$ot^oPPHbnirkKW$@Wmrn4E+05@_so{*5&DO z)_I3S1ERI)8%!y3XW+Mr>?t&>&=U=5%ygW&8F+@e(RPzM*Vnj(dq`8pFl~3v_Pk$& z)T(BwLRs^tZBO#0R5^uS{y2|*b(_ie!0Xj~eZqa^gX8yIyi?=8DR`ny4;q^K&lIBBkV)11M3wXwH`FuSPg~loc`eeTN5li<0QLbrM%rW+P(L z`q(b~g2UVUg$Io#-%?!^Ut(R1@y-3}0%i6ymG!(y`%BvSsxrWMMAf4T^%<{OHDYK4 tLQA>5nRFbT)xCw{J+3(%=j-Qf&r^wzWUyu5V`Dv+5x>AbpyDrg{|jI^vOE9) diff --git a/newton-cn/bin/v1.0/Help.format.ps1xml b/newton-cn/bin/v1.0/Help.format.ps1xml deleted file mode 100644 index 13c169a..0000000 --- a/newton-cn/bin/v1.0/Help.format.ps1xml +++ /dev/null @@ -1,2235 +0,0 @@ - - - - - - TextPropertyControl - - - - - - Text - - - - - - - - MamlShortDescriptionControl - - - - - MamlParaTextItem - - - - Text - - - - - - - - - - - - - - MamlDetailsControl - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Description - - MamlShortDescriptionControl - - - - - - - - - - - - MamlIndentedDescriptionControl - - - - - - - - 4 - - - description - - MamlDescriptionControl - - - - - - - - - - - - MamlDescriptionControl - - - - - MamlParaTextItem - - - - Text - - - - - - - MamlOrderedListTextItem - - - - 4 - - - Tag - - - Text - - - - - - - - - MamlUnorderedListTextItem - - - - 2 - - - Tag - - - Text - - - - - - - - - MamlDefinitionTextItem - - - - Term - - - - 4 - - - Definition - - - - - - - - - - - - - - - - MamlParameterControl - - - - - - -$optional = $_.required -ne "true" -$positional = (($_.position -ne $()) -and ($_.position -ne "") -and ($_.position -notmatch "named") -and ([int]$_.position -ne $())) -$parameterValue = if ($null -ne $_.psobject.Members['ParameterValue']) { - " <$($_.ParameterValue)>" -} elseif ($null -ne $_.psobject.Members['ParameterValueGroup']) { - " {$($_.ParameterValueGroup.ParameterValue -join ' | ')}" -} else { - "" -} -$(if ($optional -and $positional) { "[[-{0}]{1}] " } -elseif ($optional) { "[-{0}{1}] " } -elseif ($positional) { "[-{0}]{1} " } -else { "-{0}{1} " }) -f $_.Name, $parameterValue - - - - - - - - - MamlParameterValueControl - - - - - - if ($_.required -ne "true") { " [<$_>]" } else { " <$_>" } - - - - - - - - ExamplesControl - - - - - - Example - - MamlExampleControl - - - - - - - - MamlExampleControl - - - - - - Title - - - - - Introduction - - TextPropertyControl - - - Code - - - - - results - - - - remarks - - MamlShortDescriptionControl - - - - - - - - MamlTypeControl - - - - - - name - - - - - $_.uri - - - - - - - - 4 - - - uri - - - - - - - - - - - - $_.description - - - - - - - 4 - - - description - - MamlShortDescriptionControl - - - - - - - - - - - - - - - MamlTextItem - - - - - MamlParaTextItem - - - - Text - - - - - - - MamlOrderedListTextItem - - - - Tag - - - Text - - - - - - - MamlUnorderedListTextItem - - - - Tag - - - Text - - - - - - - MamlDefinitionTextItem - - - - Term - - - - 4 - - - Definition - - - - - - - - - MamlPreformattedTextItem - - - - Text - - - - - - - - - - - - - MamlAlertControl - - - - - - Text - - - - - - - - - MamlPossibleValuesControl - - - - - - possibleValues - MamlPossibleValueControl - - - - - - - - MamlPossibleValueControl - - - - - - possibleValue - - - - - - - Value - - - - 4 - - - Description - - MamlShortDescriptionControl - - - - - - - - - - - - - - - - MamlTrueFalseShortControl - - - - - - - $_.Equals("true", [System.StringComparison]::OrdinalIgnoreCase) - - ; - - - - - - - - - - - - - $_.Equals("false", [System.StringComparison]::OrdinalIgnoreCase) - - ; - - - - - - - - - - - - - - - - - MamlIndentedSyntaxControl - - - - - - - - 4 - - - Syntax - MamlSyntaxControl - - - - - - - - - - - CommonWorkflowParametersControl - - - - - - -$wfp = $_.psobject.Properties['WorkflowCommonParameters'] -if ($null -ne $wfp -and $wfp.Value) -{ - if ($psversiontable.psversion.Major -gt 2) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - "[{0}]" -f $resourceManager.GetString("CommonWorkflowParameters") - } - else - { - "[<WorkflowCommonParameters>]" - } -} - - - - - - - - - MamlSyntaxControl - - - - - - SyntaxItem - - - - - - - name - - - - Parameter - - MamlParameterControl - - - CommonWorkflowParametersControl - - [ - - ] - - - - - - - - - - - - - - MamlTypeWithDescriptionControl - - - - - - type - MamlTypeControl - - - - 4 - - - description - - MamlShortDescriptionControl - - - - - - - - - - - RelatedLinksHelpInfoControl - - - - - - 4 - - - - Set-StrictMode -Off - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - MamlRelatedLinksControl - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - ErrorControl - - - - - - errorId - - - - category - - ) - - - 4 - - - description - - MamlShortDescriptionControl - - - - - - - type - MamlTypeControl - - - - - targetObjectType - MamlTypeControl - - - - - recommendedAction - - MamlShortDescriptionControl - - - - - - - - - - MamlFullParameterControl - - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - Description - - MamlDescriptionControl - - - - - $_.possibleValues -ne $() - - - MamlPossibleValuesControl - - - - required - MamlTrueFalseShortControl - - - - - - ($_.position -eq $()) -or ($_.position -eq "") - - - - - - - - - - - - - - - $_.position -ne $() - - $_.position - - - - - defaultValue - - - - - pipelineInput - - - - - globbing - MamlTrueFalseShortControl - - - - - - - - - - - - zzz - - - - - - - - - - - Parameter - - MamlFullParameterControl - - - - - - - - - - 4 - - - - - - - - - - - - - - - - - help - - HelpInfoShort - - - - - - 33 - left - - - - 9 - left - - - - 25 - left - - - - - - - - Name - - - Category - - - if ($_.ModuleName -ne $null) { $_.ModuleName } else {$_.PSSnapIn} - - - Synopsis - - - - - - - - - CmdletHelp - - CmdletHelpInfo - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Syntax - - - - - - - - - - - - DefaultCommandHelp - - MamlCommandHelpInfo - - - - - - - Details - MamlDetailsControl - - - $_ - MamlIndentedSyntaxControl - - - $_ - MamlIndentedDescriptionControl - - - - - 4 - - - relatedLinks - MamlRelatedLinksControl - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - RelatedLinksHelpInfoControl - - - - - - - - - - - VerboseCommandHelp - - MamlCommandHelpInfo#DetailedView - - - - - - - Details - MamlDetailsControl - - - $_ - MamlIndentedSyntaxControl - - - $_ - MamlIndentedDescriptionControl - - - - - 4 - - - Parameters - - - - - - Parameter - - - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - Description - - MamlDescriptionControl - - - - - - - - - - - - - - - - CommonWorkflowParametersControl - - - - - 4 - - - - - - - - - - - 4 - - - Examples - ExamplesControl - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - RelatedLinksHelpInfoControl - - - - - - - - - - - ExampleCommandHelp - - MamlCommandHelpInfo#ExamplesView - - - - - - - Details - MamlDetailsControl - - - - 4 - - - Examples - ExamplesControl - - - - - - - - - - - FullCommandHelp - - MamlCommandHelpInfo#FullView - - - - - - - Details - MamlDetailsControl - - - $_ - MamlIndentedSyntaxControl - - - $_ - MamlIndentedDescriptionControl - - - - - 4 - - - Parameters - zzz - - - - - - - 4 - - - InputTypes - - - - - - InputType - - MamlTypeWithDescriptionControl - - - - - - - - - - - - - 4 - - - ReturnValues - - - - - - ReturnValue - - MamlTypeWithDescriptionControl - - - - - - - - - - - - - - (($_.terminatingErrors -ne $null) -and - ($_.terminatingErrors.terminatingError -ne $null)) - - - terminatingErrors - - - - - - - - 4 - - - terminatingError - - ErrorControl - - - - - - - - - - - - - (($_.nonTerminatingErrors -ne $null) -and - ($_.nonTerminatingErrors.nonTerminatingError -ne $null)) - - - nonTerminatingErrors - - - - - - - - 4 - - - nonTerminatingError - - ErrorControl - - - - - - - - - - - - $_.alertSet -ne $null - - alertSet - - - - - - - - - - - - - - $_.alertSet -ne $null - - alertSet - - - - - - - 4 - - - title - - - - - 4 - - - alert - - MamlAlertControl - - - - - - - - - - - - - - 4 - - - Examples - ExamplesControl - - - - - - - - 4 - - - relatedLinks - MamlRelatedLinksControl - - - - - - - - - - ProviderHelpInfo - - ProviderHelpInfo - - - - ProviderTasks - - - - - - - Task - Task - - - - - - - - - TaskExamplesControl - - - - - - - Example - TaskExampleControl - - - - - - - - TaskExampleControl - - - - - - Title - - - - - Introduction - - TextPropertyControl - - - - - Code - - - - - results - - - - - remarks - - MamlTextItem - - - - - - - - Task - - - - - - - - - Title - - - - - - - 4 - - - - Description - MamlTextItem - - - - - - Examples - TaskExamplesControl - - - - - - - - - - - - DynamicPossibleValues - - - - - - 4 - - - Value - - - - - - 8 - - - - Description - MamlTextItem - - - - - - - - - - - DynamicParameterControl - - - - - - - - - - Name - - - - Type - - - - - - - "<" + $_.Name + ">" - - - - - - - - - - - 4 - - - Description - - - - - PossibleValues - - - - - - PossibleValue - - DynamicPossibleValues - - - - - - - - - - CmdletSupported - - - - - - - - - - - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - - Drives - MamlTextItem - - - - - - - - 4 - - - - Synopsis - - - - - - - - - 4 - - - DetailedDescription - - MamlTextItem - - - - - - - - 4 - - - Capabilities - - MamlTextItem - - - - - - - - 4 - - - - Tasks - ProviderTasks - - - - - - - - 4 - - - DynamicParameters - - - - - - DynamicParameter - - DynamicParameterControl - - - - - - - - - - - - - 4 - - - Notes - - - - - - - - - 4 - - - relatedLinks - MamlRelatedLinksControl - - - - - - - - - - FaqHelpInfo - - FaqHelpInfo - - - - - - - - Title - - - - - Question - - - - - - 4 - - - Answer - - MamlTextItem - - - - - - - - - - - GeneralHelpInfo - - GeneralHelpInfo - - - - - - - - Title - - - - - - - 4 - - - Content - - MamlTextItem - - - - - - - - - - - GlossaryHelpInfo - - GlossaryHelpInfo - - - - - - - - Name - - - - - - 4 - - - Definition - - MamlTextItem - - - - - - - - - - - ScriptHelpInfo - - ScriptHelpInfo - - - - - - - - Title - - - - - - 4 - - - Content - - MamlTextItem - - - - - - - - - - - MamlCommandExamples - - MamlCommandHelpInfo#Examples - - - - - - - $_ - ExamplesControl - - - - - - - - MamlCommandExample - - MamlCommandHelpInfo#Example - - - - - - - Title - - - - - Introduction - - TextPropertyControl - - - Code - - - - - - results - - - - - remarks - - MamlShortDescriptionControl - - - - - - - - MamlCommandDetails - - MamlCommandHelpInfo#commandDetails - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - commandDescription - - MamlShortDescriptionControl - - - - - - - - - - MamlCommandParameters - - MamlCommandHelpInfo#Parameters - - - - - - - 4 - - - zzz - - - - - - - - - - MamlCommandParameterView - - MamlCommandHelpInfo#Parameter - - - - - - - $_ - MamlFullParameterControl - - - - - - - - MamlCommandSyntax - - MamlCommandHelpInfo#Syntax - - - - - - - $_ - MamlSyntaxControl - - - - - - - - MamlText - - MamlParaTextItem - MamlOrderedListTextItem - MamlUnorderedListTextItem - MamlDefinitionTextItem - - - - - - - $_ - MamlDescriptionControl - - - - - - - - MamlInputTypes - - MamlCommandHelpInfo#inputTypes - - - - - - - InputType - - MamlTypeWithDescriptionControl - - - - - - - - MamlNonTerminatingErrors - - MamlCommandHelpInfo#nonTerminatingErrors - - - - - - - nonTerminatingError - - ErrorControl - - - - - - - - MamlTerminatingErrors - - MamlCommandHelpInfo#terminatingErrors - - - - - - - terminatingError - - ErrorControl - - - - - - - - MamlRelatedLinks - - MamlCommandHelpInfo#relatedLinks - - - - - - - $_ - MamlRelatedLinksControl - - - - - - - - MamlReturnTypes - - MamlCommandHelpInfo#returnValues - - - - - - - ReturnValue - - MamlTypeWithDescriptionControl - - - - - - - - MamlAlertSet - - MamlCommandHelpInfo#alertSet - - - - - - - title - - - - - 4 - - - alert - - MamlAlertControl - - - - - - - - - - MamlDetails - - MamlCommandHelpInfo#details - - - - - - - $_ - MamlDetailsControl - - - - - - - - diff --git a/newton-cn/bin/v1.0/HelpV3.format.ps1xml b/newton-cn/bin/v1.0/HelpV3.format.ps1xml deleted file mode 100644 index 969255a..0000000 --- a/newton-cn/bin/v1.0/HelpV3.format.ps1xml +++ /dev/null @@ -1,2760 +0,0 @@ - - - - - - MamlParameterValueGroupControl - - - - - - - $_.ParameterValue.Length -ne $() - - " {$($_.ParameterValue -join ' | ')}" - - - - - - - - MamlParameterControl - - - - - - - $_.required -ne "true" - - "[" - - - - - (($_.position -ne $()) -and ($_.position -ne "") -and ($_.position -notmatch "named") -and ([int]$_.position -ne $())) - - "[" - - - Name - - - - - - - - $_ - - - - - - - - - - (($_.position -ne $()) -and ($_.position -ne "") -and ($_.position -notmatch "named") -and ([int]$_.position -ne $())) - - "]" - - - ParameterValue - MamlParameterValueControl - - - ParameterValueGroup - MamlParameterValueGroupControl - - - - $_.required -ne "true" - - "]" - - - - - - - - - MamlTypeControl - - - - - - name - - - - - - - - - MamlParameterValueControl - - - - - - - - $_.required -ne "true" - - "[" - - - "<" + $_ + ">" - - - - $_.required -ne "true" - - "]" - - - - - - - - MamlPossibleValueControl - - - - - - possibleValue - - - - - - - Value - - - - - - - - - - - - - - MamlShortDescriptionControl - - - - - MamlParaTextItem - - - - Text - - - - - - - - - - - - - - MamlDescriptionControl - - - - - MamlParaTextItem - - - - Text - - - - - - - MamlOrderedListTextItem - - - - 4 - - - Tag - - - Text - - - - - - - - - MamlUnorderedListTextItem - - - - 2 - - - Tag - - - Text - - - - - - - - - MamlDefinitionTextItem - - - - Term - - - - 4 - - - Definition - - - - - - - - - - - - - - - - MamlExampleControl - - - - - - Title - - - Introduction - - - - - - - Text - - - - - - - - Code - - - - - results - - - - remarks - - MamlShortDescriptionControl - - - - - - - - MamlFieldCustomControl - - - - - MamlPSClassHelpInfo#field - - - - "[" + $_.fieldData.type.name + "] $" + $_.fieldData.name - - - - $_.introduction.text - - - - - - - - - - - - - - - MamlMethodCustomControl - - - - - MamlPSClassHelpInfo#method - - - - - - - - function GetParam - { - if(-not $_.Parameters) - { - return $null - } - $_.Parameters.Parameter | - %{ - - if($_.type) - { - $param = "[$($_.type.name)] `$$($_.name), " - } - else - { - $param = "[object] `$$($_.name), " - } - - $params += $param - } - - $params = $params.Remove($params.Length - 2) - return $params - } - - $paramOutput = GetParam - - "[" + $_.returnValue.type.name + "] " + $_.title + "(" + $($paramOutput) + ")" - - - - - $_.introduction.text - - - - - - - - - - - - - - - - RelatedLinksHelpInfoControl - - - - - - 4 - - - - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - - - - ReducedDefaultCommandHelp - - ExtendedCmdletHelpInfo - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - - - - - - 4 - - - Syntax - - - - - - SyntaxItem - - - - - - - name - - - - Parameter - - MamlParameterControl - - - - $_.WorkflowCommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - $_.CommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - Aliases - - - - - - - - - 4 - - - Remarks - - - - - - - - - - - ReducedVerboseCommandHelp - - ExtendedCmdletHelpInfo#DetailedView - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - - - - - - 4 - - - Syntax - - - - - - SyntaxItem - - - - - - - name - - - - Parameter - - MamlParameterControl - - - - $_.WorkflowCommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - $_.CommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - Parameters - - - - - - Parameter - - - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - - - - - - - - - - - - - $_.WorkflowCommonParameters -eq $true - - - - - - - - - - 4 - - - - - - - - - - - - - - $_.CommonParameters -eq $true - - - - - - - - - - 4 - - - - - - - - - - - - - - ($_.CommonParameters -eq $false) -and ($_.parameters.parameter.count -eq 0) - - - - - - - - - - - - - - - - - - - - - 4 - - - Aliases - - - - - - - - - 4 - - - Remarks - - - - - - - - - - - ReducedFullCommandHelp - - ExtendedCmdletHelpInfo#FullView - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - - - - - - 4 - - - Syntax - - - - - - SyntaxItem - - - - - - - name - - - - Parameter - - MamlParameterControl - - - - $_.WorkflowCommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - $_.CommonParameters -eq $true - - - - - - - [ - - ] - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - Parameters - - - - - - Parameter - - - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - - $_.description -ne $() - - description - - - - $_.possibleValues -ne $() - - - - - - - - possibleValues - MamlPossibleValueControl - - - - - - - - - - - $_.required.ToLower().Equals("true") - - - - - - - - - - - - - - - $_.required.ToLower().Equals("false") - - - - - - - - - - - - - - - - - ($_.position -eq $()) -or ($_.position -eq "") - - - - - - - - - - - - - - - $_.position -ne $() - - $_.position - - - - - pipelineInput - - - - - parameterSetName - - - - - aliases - - - - - isDynamic - - - - - - - - - - - - - - - - - - $_.WorkflowCommonParameters -eq $true - - - - - - - - - - 4 - - - - - - - - - - - - - - $_.CommonParameters -eq $true - - - - - - - - - - 4 - - - - - - - - - - - - - - ($_.CommonParameters -eq $false) -and ($_.parameters.parameter.count -eq 0) - - - - - - - - - - - - - - - - - - - - - 4 - - - InputTypes - - - - - - InputType - - - - - - - type - MamlTypeControl - - - - - - - - - - - - - - - - - - - 4 - - - ReturnValues - - - - - - ReturnValue - - - - - - - type - MamlTypeControl - - - - - - - - - - - - - - - - - - - 4 - - - Aliases - - - - - - - - - 4 - - - Remarks - - - - - - - - - - - ReducedExamplesCommandHelp - - ExtendedCmdletHelpInfo#ExamplesView - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - - - - - - 4 - - - Aliases - - - - - - - - - 4 - - - Remarks - - - - - - - - - - - ReducedCommandHelpParameterView - - ExtendedCmdletHelpInfo#parameter - - - - - - - - - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - - $_.description -ne $() - - description - - - - $_.possibleValues -ne $() - - - - - - - - possibleValues - MamlPossibleValueControl - - - - - - - - - - - $_.required.ToLower().Equals("true") - - - - - - - - - - - - - - - $_.required.ToLower().Equals("false") - - - - - - - - - - - - - - - - - ($_.position -eq $()) -or ($_.position -eq "") - - - - - - - - - - - - - - - $_.position -ne $() - - $_.position - - - - - pipelineInput - - - - - parameterSetName - - - - - aliases - - - - - isDynamic - - - - - - - - - - - - - - - - - VerboseRecord - - - System.Management.Automation.VerboseRecord - - - - - - - Message - - - - - - - - DeserializedVerboseRecord - - - Deserialized.System.Management.Automation.VerboseRecord - - - - - - - InformationalRecord_Message - - - - - - - - DebugRecord - - - System.Management.Automation.DebugRecord - - - - - - - Message - - - - - - - - DeserializedDebugRecord - - - Deserialized.System.Management.Automation.DebugRecord - - - - - - - InformationalRecord_Message - - - - - - - - DscResourceHelp - - DscResourceHelpInfo#FullView - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Description - - MamlShortDescriptionControl - - - - - - - - - - - - - 4 - - - description - - MamlDescriptionControl - - - - - - - - 4 - - - Properties - - - - - - Parameter - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - Description - - MamlDescriptionControl - - - - $_.possibleValues -ne $() - - - - - - - - possibleValues - MamlPossibleValueControl - - - - - - - - - - - $_.required.ToLower().Equals("true") - - - - - - - - - - - - - - - $_.required.ToLower().Equals("false") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - Examples - - - - - - Example - - MamlExampleControl - - - - - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - RelatedLinksHelpInfoControl - - - - - - - - - - DscResourceHelp - - DscResourceHelpInfo#DetailedView - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Description - - MamlShortDescriptionControl - - - - - - - - - - - - - 4 - - - description - - MamlDescriptionControl - - - - - - - - 4 - - - Properties - - - - - - Parameter - - - - - - - name - - - ParameterValue - MamlParameterValueControl - - - - 4 - - - Description - - MamlDescriptionControl - - - - - - - - - - - - - - - - - - - - - 4 - - - Examples - - - - - - Example - - MamlExampleControl - - - - - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - RelatedLinksHelpInfoControl - - - - - - - - - - DscResourceHelp - - DscResourceHelpInfo - - - - - - - Details - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Description - - MamlShortDescriptionControl - - - - - - - - - - - - - 4 - - - description - - MamlDescriptionControl - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - - - - - - 4 - - - - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - - - - - - - - PSClassHelp - - PSClassHelpInfo#FullView - - - - - - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Introduction - - MamlShortDescriptionControl - - - - - - - - 4 - - - members - - - - - - member - - - - - - - MamlFieldCustomControl - - - - - - - - - - - - - - - - - - 4 - - - members - - - - - - member - - - - - - - MamlMethodCustomControl - - - - - - - - - - - - - - - - - - - 4 - - - Examples - - - - - - Example - - MamlExampleControl - - - - - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - - - - - - 4 - - - - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - - - - - - - - - - - - - - PSClassHelp - - PSClassHelpInfo#DetailedView - - - - - - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Introduction - - MamlShortDescriptionControl - - - - - - - - 4 - - - members - - - - - - member - - - - - - - MamlFieldCustomControl - - - - - - - - - - - - - - - - - - 4 - - - members - - - - - - member - - - - - - - MamlMethodCustomControl - - - - - - - - - - - - - - - - - - - 4 - - - Examples - - - - - - Example - - MamlExampleControl - - - - - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Details.Name + " -examples" - - ". - - - " - - "get-help " + $_.Details.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Details.Name + " -full" - - ". - - - - - - - - 4 - - - - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - - - - - - - - - - - - - PSClassHelp - - PSClassHelpInfo - - - - - - - - - - - - - - 4 - - - Name - - - - - - - - - 4 - - - Introduction - - MamlShortDescriptionControl - - - - - - - - - - - - - - 4 - - - relatedLinks - - - - - - navigationLink - - - - - - - linkText - - - - $_.linkText.Length -ne 0 - - " " - - - uri - - - - - - - - - - - - - - - - - - - 4 - - - " - - "get-help " + $_.Name + " -examples" - - ". - - - " - - "get-help " + $_.Name + " -detailed" - - ". - - - " - - "get-help " + $_.Name + " -full" - - ". - - - - - - - - 4 - - - - if(($psversiontable.psversion.Major -gt 2) -and ($_.relatedLinks -ne $()) -and ($_.relatedLinks.navigationLink -ne $()) -and ($_.relatedLinks.navigationLink.Length -ne 0)) - { - $assembly = [System.Reflection.Assembly]::Load("System.Management.Automation") - $resourceManager = New-Object System.Resources.ResourceManager -ArgumentList "HelpDisplayStrings", $assembly - [String]::Format(" {0}{1}", $resourceManager.GetString("RelatedLinksHelpInfo"), "`"get-help " + $_.Details.Name + " -online`"`n") - } - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/AppBackgroundTask.psd1 b/newton-cn/bin/v1.0/Modules/AppBackgroundTask/AppBackgroundTask.psd1 deleted file mode 100644 index 863a5cf..0000000 --- a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/AppBackgroundTask.psd1 +++ /dev/null @@ -1,35 +0,0 @@ -@{ - GUID = '{eb40bd55-3bab-4fa6-88ee-0dcf3cad5a25}' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - Copyright = '© Microsoft Corporation. All rights reserved.' - ModuleVersion = '1.0.0.0' - PowerShellVersion = '5.1' - HelpInfoUri = "https://go.microsoft.com/fwlink/?LinkID=286813" - - NestedModules = @( - "PS_BackgroundTask.cdxml", - "microsoft.windows.appbackgroundtask.commands.dll") - FunctionsToExport = @( - "Unregister-AppBackgroundTask", - "Get-AppBackgroundTask", - "Start-AppBackgroundTask" - ) - AliasesToExport = @( - 'iru', - 'pfn', - 'tid' - ) - CmdletsToExport = @( - "Disable-AppBackgroundTaskDiagnosticLog", - "Enable-AppBackgroundTaskDiagnosticLog", - "Set-AppBackgroundTaskResourcePolicy" - ) - FormatsToProcess = @( - 'MSFT_BackgroundTask.Format.ps1xml' - ) - CompatiblePSEditions = @( - 'Core', - 'Desktop' - ) -} diff --git a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/MSFT_BackgroundTask.Format.ps1xml b/newton-cn/bin/v1.0/Modules/AppBackgroundTask/MSFT_BackgroundTask.Format.ps1xml deleted file mode 100644 index aec4c60..0000000 --- a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/MSFT_BackgroundTask.Format.ps1xml +++ /dev/null @@ -1,266 +0,0 @@ - - - - - MSFT_BackgroundTask_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_BackgroundTask - - - - - 65 - - - - - - - - - - - - - - - PackageFullName - - - - try - { - $oldValue = $global:FormatEnumerationLimit - $global:FormatEnumerationLimit = 100 - $result="" - $result2="" - $rawUI = $Host.UI.RawUI.BufferSize.Width - if( $rawUI -gt 0 ) { - $maxLen = 0 - $finalLen = 0 - foreach($package in Get-AppxPackage) - { - $currPackage = $package.PackageFamilyName - if( $currPackage.Length -gt $maxLen ) { - $maxLen = $currPackage.Length - } - } - $finalLen = $maxLen - $rawUI = ($rawUI - 65) - $rawUI = ($rawUI / 2) - - for( $i = 0; $i -lt ($_.EntryPoint.Count); $i++ ) - { - if ( $rawUI -gt $_.EntryPoint[$i].Length ) { - $result2=$_.EntryPoint[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2+"`r`n" - $result = $result+$result2 - } else { - $result2=$_.EntryPoint[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2.Substring(0, ($rawUI - 7 ) )+"..." - $result2 = $result2+"`r`n" - $result = $result+$result2 - } - } - $result - - } else { - for( $i = 0; $i -lt ($_.EntryPoint.Count); $i++ ) - { - $result2=$_.EntryPoint[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2.Substring(0, 22 )+"..." - $result2 = $result2+"`r`n" - $result = $result+$result2 - } - $result - } - - } - finally - { - $global:FormatEnumerationLimit = $oldvalue - } - - - - - try - { - $oldValue = $global:FormatEnumerationLimit - $global:FormatEnumerationLimit = 100 - $result="" - $result2="" - $rawUI = $Host.UI.RawUI.BufferSize.Width - - # Only dynamically resize if we're not in the default output layout - - if( $rawUI -gt 120) { - $maxLen = 0 - $finalLen = 0 - foreach($package in Get-AppxPackage) - { - $currPackage = $package.PackageFamilyName - if( $currPackage.Length -gt $maxLen ) { - $maxLen = $currPackage.Length - } - } - $finalLen = $maxLen - $rawUI = ($rawUI - 65) - $rawUI = ($rawUI / 2) - - for( $i = 0; $i -lt ($_.EntryPoint.Count); $i++ ) - { - if ( $rawUI -gt $_.TaskID[$i].Length ) { - $result2=$_.TaskID[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2+"`r`n" - $result = $result+$result2 - } else { - $result2=$_.TaskID[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2.Substring(0, ($rawUI - 5 ) )+"..." - $result2 = $result2+"`r`n" - $result = $result+$result2 - } - } - $result - - } else { - for( $i = 0; $i -lt ($_.EntryPoint.Count); $i++ ) - { - $result2=$_.TaskID[$i] - $result2 = $result2.TrimStart("{") - $result2 = $result2.TrimEnd("}") - $result2 = $result2.Substring(0, 22 )+"..." - $result2 = $result2+"`r`n" - $result = $result+$result2 - } - $result - } - - } - finally - { - $global:FormatEnumerationLimit = $oldvalue - } - - - - - - - - - MSFT_BackgroundTask_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_BackgroundTask - - - - - - - - $_.PackageFullName - - - - - try - { - $oldValue = $global:FormatEnumerationLimit - $global:FormatEnumerationLimit = 100 - $result="" - $result2="" - $resultEntryPoint="" - $resultTaskID="" - for( $i = 0; $i -lt ($_.Taskname.Count); $i++ ) - { - $result2="TaskName: "+$_.TaskName[$i] - $result2 = $result2+"`r`n" - $result2 = $result2+"EntryPoint: " - $resultEntryPoint = $_.EntryPoint[$i] - $resultEntryPoint = $resultEntryPoint.TrimStart("{") - $resultEntryPoint = $resultEntryPoint.TrimEnd("}") - $result2= $result2+$resultEntryPoint+"`r`n" - $result2 = $result2+"TaskID: " - $resultTaskID = $_.TaskID[$i] - $resultTaskID = $resultTaskID.TrimStart("{") - $resultTaskID = $resultTaskID.TrimEnd("}") - $result2 = $result2+$resultTaskID - $result2 = $result2+"`r`n"+"`r`n" - $result = $result+$result2 - } - $result - } - finally - { - $global:FormatEnumerationLimit = $oldvalue - } - - - - - - PerfInfo - - - try - { - $oldValue = $global:FormatEnumerationLimit - $global:FormatEnumerationLimit = 100 - if($_.PerfInfo.Count -gt 0) - { - $result="" - $result2="" - for( $i = 0; $i -lt ($_.PerfInfo.Count); $i++ ) - { - $result2=$_.PerfInfo[$i] - $result2 = $result2+"`r`n" - $result = $result+$result2 - } - $result - } - else - { - $result="Resource usage not requested." - $result - } - } - finally - { - $global:FormatEnumerationLimit = $oldvalue - } - - - - - - - - - MSFT_BackgroundTask_WideView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_BackgroundTask - - - 2 - - - - PackageFullName - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/Microsoft.Windows.AppBackgroundTask.Commands.dll b/newton-cn/bin/v1.0/Modules/AppBackgroundTask/Microsoft.Windows.AppBackgroundTask.Commands.dll deleted file mode 100644 index 3e52a25fa15e59ddfa1d97ce8e3e22c69824e492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8704 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 Bb;bYy diff --git a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/PS_BackgroundTask.cdxml b/newton-cn/bin/v1.0/Modules/AppBackgroundTask/PS_BackgroundTask.cdxml deleted file mode 100644 index e98d4fb..0000000 --- a/newton-cn/bin/v1.0/Modules/AppBackgroundTask/PS_BackgroundTask.cdxml +++ /dev/null @@ -1,79 +0,0 @@ - - - - 1.0 - AppBackgroundTask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/AppLocker/AppLocker.psd1 b/newton-cn/bin/v1.0/Modules/AppLocker/AppLocker.psd1 deleted file mode 100644 index dcb49731916cc774a2bdafef828972d4e52e6d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmbW0-A=+l5QWdRiSJ;z*5VH;nixd|B~fDndQY$@5sNACDm`H1slakOw)FD z=FIGwGrJ$}2YS__7IdO3)pe{r74Ym}RaE0!(kiPJZE2fT6|1B*d}XXM>#9e$wV@;8 zTf}PG)FJ3YtTENBdPR>)bf*VJzQeh?YGXer=Isz$BHyAz|F-aSu?AVb#rnircwThD zzpwD$m4?)asDBHi#H+lq|NNW+&=vJ~mU4AsUxjoO;(g+Kqafpd4*wf8=;6Kgc%1cT zdar|9oxZ7Jmt>3_*??u}yZy}E@T@fB2uw7idMSswpi)fF#x2h&{zc0`4X|yPn_daJ z1#~{->9KAzhsm7k-mS4tBQMmqX|+%}^l1&i228mR(sW2*GGU(gHK|e6b9NHa`J6a@ zCENQ9L|gaxBF - - - - - - VirtualProcess - - System.Diagnostics.Process#AppVVirtualProcess - - - - - - 7 - right - - - - 7 - right - - - - 8 - right - - - - 10 - right - - - - 5 - right - - - - 8 - right - - - - - 8 - right - - - - - 15 - right - - - - - left - - - - - - - - HandleCount - - - [int]($_.NPM / 1024) - - - [int]($_.PM / 1024) - - - [int]($_.WS / 1024) - - - [int]($_.VM / 1048576) - - - -if ($_.CPU -ne $()) -{ - $_.CPU.ToString("N") -} - - - - Id - - - ProcessName - - - $_.VirtualProcessInformation.UserSid - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/AppVClientCmdlets.psm1 b/newton-cn/bin/v1.0/Modules/AppvClient/AppVClientCmdlets.psm1 deleted file mode 100644 index 94e8bd3..0000000 --- a/newton-cn/bin/v1.0/Modules/AppvClient/AppVClientCmdlets.psm1 +++ /dev/null @@ -1,242 +0,0 @@ -# .ExternalHelp Microsoft.AppV.AppVClientPowerShell.dll-Help.xml - -function Get-AppvVirtualProcess -{ -[CmdletBinding(DefaultParameterSetName='Name')] -param( - [Parameter(ParameterSetName='Name', Position=0, ValueFromPipelineByPropertyName=$true)] - [Alias('ProcessName')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${Name}, - - [Parameter(ParameterSetName='Id', Mandatory=$true, ValueFromPipelineByPropertyName=$true)] - [Alias('PID')] - [System.Int32[]] - ${Id}, - - [Parameter(ValueFromPipelineByPropertyName=$true)] - [Alias('Cn')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${ComputerName}, - - [ValidateNotNull()] - [Switch] - ${Module}, - - [Alias('FV','FVI')] - [ValidateNotNull()] - [Switch] - ${FileVersionInfo}, - - [Parameter(ParameterSetName='InputObject', Mandatory=$true, ValueFromPipeline=$true)] - [System.Diagnostics.Process[]] - ${InputObject}) - -begin -{ - try { - $comConsumer = New-Object Microsoft.AppV.AppvClientFacade.ClientComConsumer - $processList = $null - try { - $processList = $comConsumer.GetAllVirtualProcesses() - } catch { - $processList = $comConsumer.GetUserVirtualProcesses() - } - - if ($FileVersionInfo) - { - $PSBoundParameters['FileVersionInfo'] = $false - } - - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) - { - $PSBoundParameters['OutBuffer'] = 1 - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('Get-Process', [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters | foreach { - if ($processList.ContainsKey($_.Id)) { - Add-Member -InputObject $_ -MemberType NoteProperty -Name AppvPackageData -Value ($processList.Item($_.Id)) - if ($FileVersionInfo) { - $_.MainModule.FileVersionInfo - } else { - $_ - } - } - }} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - throw - } -} - -process -{ - try { - $steppablePipeline.Process($_) - } catch { - throw - } -} - -end -{ - try { - $steppablePipeline.End() - } catch { - throw - } -} -} - -# .ExternalHelp Microsoft.AppV.AppVClientPowerShell.dll-Help.xml - -function Start-AppvVirtualProcess -{ -[CmdletBinding(DefaultParameterSetName='Default')] -param( - [Parameter(Mandatory=$true, Position=0)] - [Alias('PSPath')] - [ValidateNotNullOrEmpty()] - [System.String] - ${FilePath}, - - [Parameter(Position=1)] - [Alias('Args')] - [ValidateNotNullOrEmpty()] - [System.String[]] - ${ArgumentList}, - - [Parameter(ParameterSetName='Default')] - [Alias('RunAs')] - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - ${Credential}, - - [ValidateNotNullOrEmpty()] - [System.String] - ${WorkingDirectory}, - - [Parameter(ParameterSetName='Default')] - [Alias('Lup')] - [Switch] - ${LoadUserProfile}, - - [Parameter(ParameterSetName='Default')] - [Alias('nnw')] - [Switch] - ${NoNewWindow}, - - [Switch] - ${PassThru}, - - [Parameter(ParameterSetName='Default')] - [Alias('RSE')] - [ValidateNotNullOrEmpty()] - [System.String] - ${RedirectStandardError}, - - [Parameter(ParameterSetName='Default')] - [Alias('RSI')] - [ValidateNotNullOrEmpty()] - [System.String] - ${RedirectStandardInput}, - - [Parameter(ParameterSetName='Default')] - [Alias('RSO')] - [ValidateNotNullOrEmpty()] - [System.String] - ${RedirectStandardOutput}, - - [Parameter(ParameterSetName='UseShellExecute')] - [ValidateNotNullOrEmpty()] - [System.String] - ${Verb}, - - [Switch] - ${Wait}, - - [Parameter(ParameterSetName='UseShellExecute')] - [ValidateNotNullOrEmpty()] - [System.Diagnostics.ProcessWindowStyle] - ${WindowStyle}, - - [Parameter(ParameterSetName='Default')] - [Switch] - ${UseNewEnvironment}, - - [Parameter(Mandatory=$true)] - ${AppvClientObject}) - -begin -{ - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) - { - $PSBoundParameters['OutBuffer'] = 1 - } - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('Start-Process', [System.Management.Automation.CommandTypes]::Cmdlet) - - if($AppvClientObject -is [Microsoft.AppV.AppvClientPowerShell.AppvClientPackage]) - { - if (-not (Get-AppvClientPackage -PackageId $AppvClientObject.PackageId -VersionId $AppvClientObject.VersionId) ) - { - $message = [Microsoft.AppV.AppvClientPowerShell.ResourceRetriever]::GetString("VirtProcessCannotStartBecausePackageNotFound") - throw $message - } - - $PSBoundParameters['ArgumentList'] += "/AppvVe:$($AppvClientObject.PackageId)_$($AppvClientObject.VersionId)" - } - elseif($AppvClientObject -is [Microsoft.AppV.AppvClientPowerShell.AppvClientConnectionGroup]) - { - if (-not (Get-AppvClientConnectionGroup -GroupId $AppvClientObject.GroupId -VersionId $AppvClientObject.VersionId) ) - { - $message = [Microsoft.AppV.AppvClientPowerShell.ResourceRetriever]::GetString("VirtProcessCannotStartBecauseGroupNotFound") - throw $message - } - - $PSBoundParameters['ArgumentList'] += "/AppvVe:$($AppvClientObject.GroupId)_$($AppvClientObject.VersionId)" - } - else - { - $message = [Microsoft.AppV.AppvClientPowerShell.ResourceRetriever]::GetString("InvalidObjectTypeForStartVirtProcess") - throw $message - } - - [Void]$PSBoundParameters.Remove("AppvClientObject") - $scriptCmd = {& $wrappedCmd @PSBoundParameters } - - $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - throw - } -} - -process -{ - [Void][Microsoft.AppV.SharedPerformance.Tracing.PROVIDER_MICROSOFT_APPV_CLIENT_SHAREDPERFORMANCEEVENTS]::Write_ClientProgrammability_StartStartAppvVirtualProcess($FilePath) - - try { - $steppablePipeline.Process($_) - } catch { - throw - } - finally { - [Void][Microsoft.AppV.SharedPerformance.Tracing.PROVIDER_MICROSOFT_APPV_CLIENT_SHAREDPERFORMANCEEVENTS]::Write_ClientProgrammability_StopStartAppvVirtualProcess($FilePath) - } -} - -end -{ - try { - $steppablePipeline.End() - } catch { - throw - } -} -} diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/AppvClient.psd1 b/newton-cn/bin/v1.0/Modules/AppvClient/AppvClient.psd1 deleted file mode 100644 index 9ca404e..0000000 --- a/newton-cn/bin/v1.0/Modules/AppvClient/AppvClient.psd1 +++ /dev/null @@ -1,25 +0,0 @@ -@{ -ModuleVersion = '1.0.0.0' - -GUID = '596D7B43-928B-44D4-89E7-17D34740ECC2' - -Author = 'Microsoft Corporation' - -CompanyName = 'Microsoft Corporation' - -Copyright = '© Microsoft Corporation. All rights reserved.' - -Description = 'Microsoft Application Virtualization Client Module' - -RequiredAssemblies = 'Microsoft.AppV.AppvClientComConsumer.dll' - -NestedModules = 'Microsoft.AppV.AppVClientPowerShell', 'AppVClientCmdlets.psm1' - -ProcessorArchitecture = 'AMD64' - -# Location from which to download updateable help -HelpInfoURI = "https://go.microsoft.com/fwlink/?LinkId=403112 " - -FunctionsToExport = 'Get-AppvVirtualProcess', 'Start-AppvVirtualProcess' - -} diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppVClientPowerShell.dll b/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppVClientPowerShell.dll deleted file mode 100644 index 5bd4a31f3aef53d6bf5006e21a07c79eef195670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108856 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 GWB>q-Wtcz! diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppvClientComConsumer.dll b/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.AppvClientComConsumer.dll deleted file mode 100644 index 200f31657578bf840032cd98642b298d357a53d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708936 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 z 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 diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.ClientProgrammability.Eventing.dll b/newton-cn/bin/v1.0/Modules/AppvClient/Microsoft.AppV.ClientProgrammability.Eventing.dll deleted file mode 100644 index 21776b175a85aba1bcfb0a0fa318bbd6b1dcfb52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172856 zcmd?SWpq?Y7q)%U34!2F@W$N+cXxMp3mV+r-Q8UVcXxO9K?a7wVHn)Mx_2r&&vaFG z-u12Z{(4!@Q&V@{S6%0H_erOdkfvh2NshPUI6mtCzkWH+PW4~>DMF(>3{rK}q`RX! zTm8-@+v!!|T(TMgZMwQUbqQ?UrD+Fu^QIj;26l5dYw7ONy`#HLM|X+J)!iKeTeQp^ zB}&AUT3w~2<5ckScFw)Kdr&Vq51i!gNM2bTrp0PAuBJF| z{0aWA^FS@C|IJP7t!`J7;Xv`fkpJq4CG}^J@>a$~d1tXiEv zDy#qgAOCUlsneDSDwp}6&6&Hk?A1->n?2RZs*Y}}n*Q$}x8pR)+@))m=4z47O`W6T zt3sduf<+vsNaijr+XpHT=ZbT7fDAIYVyOT3&sN;8>JQG%<%Dx`)bn!Q=l62_XfjQY5{h1vWLOq~9?r-eaWIAGj z_|6Us5gP=aO@bbm&88y`2ro_eyDdaq5I*eKVmji12*(Z!;Sa)>9a~LDd=TN;VIdNL zxTLPdcyyf>RoAV@b(#>wWli|IEkq&^SJ+X^bR-6Gl^qr$35aX#C~i8Eg1F8O3*iQF zgB>MIhq`G#?wjne5XnK@Vn<2SkpjeRc36m%AnvfEl<7zX;tzIMh}0k+v!lG}NCV<; zc36nCAfB+Jg6T*H;wd{UgnF7&&q3^{XgV^0c+L(BkrBiTc2qJQnLxZ`hlR)tVwZZZ zqU$tiOOJ~*3+mmv_BZORsQ2*hRvx>vq29~8J?r04@8jLAJ$7eDy`Oh`);Ulg;N1Zp zyK|yG$h$r3T&NH6?lvB~bE7`YyFF|5YQ)EVgm<^~*qs;kQQqxY=ReTsK?@Yr1#^=aPiSrEkgs~12% z?sL35&|`OT)aQA(XI%pI1>W7sV|Pi^7kRg5T?+Lj-rd<_cWKm@dADb+UZJUHV&2`w zV|Q89S9!N*T@Lj%-rdz>cX`y;dADa>0rd^u-OXcnMbtNWw`W}m^)24r-D9_U`K_LG zdADa>1@#@?-NR#dRn&j*ZqK?J>btzVr^oKF5b!2Rkf8FAzJ~@!fRv2C<7B z7NQS`-Rw|bxO#rf^#!qq9TuV=h`sFiX*&9Y*vAeFF#yDVcKl&F27)-i4ht~|#6fo4 zH64RN9Abxs7y{xjJMNi|p&*X1!$J%Lag-hRO~-H$$Jk*ZMu0fZjt8b=B#0C2un?m_ zoMgwJreidSQ|z!1V?dl{$3xRG7Q`8LScq{T&a&f?=@<{<96Kz;1Q6%h;p1gorxQV3 zV26d61mYq)qMDA$ATF`PLQDa1nH~P7V=9O%?645iKwM=G3o!@8ZFXEW9dkk4VTXm72jUNQq%?2Kd=PipVIdZP zxW|rEreh(9`|Pj~i$IKy75rV3Or~Qoh%uV*cUy=hAjYyIv*}n0VjMdx#4-@$*^$L` zEC(@x9Ts8*h>7gTYC2Yen8XeXu?oawc4RXht3ga*hlThZ#8h_tW;)h@n8pqZu@=O1 zc4Rjl>p;w4hlN-VVkSFsn2rq~X0gLUYy>fz9XU;kcb9Ts9Yh^3Na4~S)wV=sv1l4Bo; z6_R5=h?VTfW8RhnAXc%%LL3CKT5=o$@w?I)|ycUQ@wzAW-_cat0!Ky;TJ>Ps3QcMo>VFmH?cg2l((lN}a9eL3Re?j<>{ zfaonb)Tdw{cOS`d4MbnbaUDcIc1$sE%MB3y*tDn z=50|guGOm?c36nNK#Y+bk3o!;9Djot$BxP7c{~9zo*fqADToQ|m}xqmftbh+3-KJp zB+2mt#AM0w62uhA@e0IL$?+P*G_3m`Q~~20nX~N%aAzUEp zv*V}f@CMO<9Tq};>Fwig$c|5@BOHiE?645NAR4pdv*`#Aq6s@JL@yurL44JOzuQ7I1M!U=`%Oo4 z5Z~EhAzFa=!Hxr_qa}!+?6456K)5ml-qcsR`P58SlL;wgMb{sMtZ9s%$hlOYh z!j~O~O-DNr;n`s!+JlJ9jw7a{1BfW>un-+VL}kY@(-8B zLJR`&H#<_Aj=>pNx?643cK)hr}8q+Zn z#4C1Kh*2P3vqSw}l#@*Td>()FuiK0U@rE51Vho6X*pbe3j0N$Q9Ts97h=19U-gJxy z@s1r9VgiWw?6BP0i6B0(!$M2~@sS;tTRR!VCw5qfDIh+xBZGNcrh@nqM8x%XTZm~O zzOo~u>6i}U8=r@Tm;vHDJ2IJ$nIL|!!$Qmg@sk~yO~-5yzt~|R=74ar1V4XdF&%S3 zcxl4lZ6W4?IQ3hwW4P&<58|{Y{M{B}0f;l~7-2dVf;h_#3$X~qId+UR9g9JnXNQGY z0^$NYMwyPKATF}QLM#Jui5;U&$8r#t*g_v;CD?uZp#G_*V$nqE`qqh4*WK%hvO26o9wU< zmqFZO#}CtS1;lN3Sct12?y%#h>9_{s4|Z6H>mcs3)DaYbbJG`fgKj& zJBUGrg0IsG=C%F<#9&SMyDh{|5YyOE$#nbzF`XS2!f`2L20QAS4lfWh*YF`FG0!Ux10b~HB~;Xuq~hlTJ3F^?ThOh4*ekF*__oWDrZ(QO|Tl0kM=F79uK$W$b8XI--GC&JGI^9mEQDG&LPDK&)hk zg@_4a6+2p(j#wa8v%^Bf2CxAADmmhT*d{srK?D>F{(aL;=6S>i z(MA*gZVQnBL|b-jHXR8;v}1>bNCcuiJGPjP#2`Ab!$Kqh(UBcnO-E7?f$XplZV;W= zvCVWO1JRis79u%_F6`KDI#Ph>$_@*W5=1w4>@XdvKy+t^g-8ve2Rn9}jx->8vcp28 z1<{KgyG%zq5WU%9A<~1WQY!cwi(~%WGy{mLn(%j9h>Rdwup_SN$ONJ#J1j(I5P8Z4 ze~#*HIR8n5ZHgGi)q<~&=uwU9 zqc{jZP58SlLc$&EWggFT8P|Rs``@A}WFSmx+j`qcVthn(%j9h$qF~@rfN4q6Uc1?1*AIYJ&K}4hvBW#Lc?F_h~otaj6aBmL~k& z7NQP_+wACWI@Di)QQxUyhlNmoB}9Fvh8;ajhx!XJ>N_>;un_96x2W&bu%oBxXb9py zJ1j&a5D(bV%XBmb@h3YhL=zAX+0ol{GzIa99TuV)h`-p;$8F5gL13N54 zHxM7$G1PQ)2l0s=7NQ4;&+HgxI(mZm!VU|e-XvB19GM-%O-FAK-`HUx`hfV(juED# zFNh!Pun_$~{A9;S)6pNqFLqdn0U(@u!Oy3oOvgYFUYhWCTZlm*TXzKV@$_T5aHNiA%=nQWye_4F&spAc36lJAR@41oaq<|!jBymVibso>=)ED zGKg60unj=3Nbv%^Bn1CfLsGfl^Q5J}l#Ar^pevtyR&SO_8+J1oQ^ z5Xspw+jJ}jk%Ao-VhM6AP%$Rmg!gx;s`q|#P1-Evg5YtSOel1J1oRn5XaeZ$8@X%ae^HdVm*kH z?D)fUYyfeJ9Ts9Eh|`)-Z(SYqSLuTPF5M=yXF_W?qn*?;`0)rdzvkEiVzMUu-4D`6fn~q%|HfX}%Z6S7p*vXC# zrehC?UF@(BdqEs#M;Ftv55y66Scv@~&a$JU={Nx596Kz;K@is!5%hZvT}{U!5H~d8 z@3s(!LG)@9?6_z;j)3T`34gbRI0~WG%d>D?2R2cM#jy@yc}k0I{7N7UCy}9qf2* zI(~uJ$qoyl{<$0Vo9rEeUpwTAVB8<-pV?8r$*u{1w}o(lXeT+mL9~|~J|IT3BZqk& z;XsUGhlTJ3F_j%TO-FbT)7W7lB7m6B4$H0e1F?V|79t{umF&oEo<}4QtJq;7B7@i@ zIii5rEIFboB56{*u#B6)<06lSDuAl^9#wRB%XALDB9@tF9|J^LO{kx;nnX+x<=8RT zBw~Rm&khR_8$<uzeF^3%%q8^C3?1*AI>Vufa4hzu$#C&!{ zH60B>EMSL)Xar(~CXA1h#%NcE);2-w-#hquE5JN{QxNer;qSH(%|IkzM_bd;97IBP zScn!N60xI=>1YWeF*__oD-cQ8(av zh!pIw5bZ&vWJd?n(E&s%c36mxAX2j<&~yZXNW%^b(FsIac62fwok65yhlS_@B0W1g zn~ts^GO)u!bOVu*9bHUEcMzG_VIg{e$jlD>d!`TNuOau{+ z9Ts8|2!D25Hyx8f#Akd=T&0 zVIdZPc+ZXzreh(95A3iIi$Hv2$4Jw$7{n)bScoMcKC@$#=~xQl3p*^tG7w+cG1_!2 z2l0&^7Ged6@9Y?3I#z=C!43!Poi^^W$YTh)bGK?+|Sgzk|5Uj-Mv62E-M1 zSctVCuCn8o=~xHi8aph+dJxyyfq%E$CFhlSV=;wU>hnT`V>j9_`B3p*^tbr7Q_ z1z#V>%xmlhh|!wxcUy>?AjYucxaqhBVk|o>#BC7c*m1&i+yOD39Twsb5EIyO(sbMf zF_9e>;vR@e>^NmQ?t_@j4h!)B#1wX%HXVP0n92?d@esr`cAPOCk3dXkhlThH#0++v zH64#Z%w&g!_!~s0X~EaWUy+UHk0&5HYr@}cA)bQh!j8wL;~9vq?645eL3Crs-=^aQ zi04-g~SVIh8k7{!i%Ovf(}quF60)EgeD=TmmPH67~h zjMVcfJ1m5Hvm*7g-dVxFfu7F%+@RiyNd2r=6aH=sq26dn{j8TA=}m`v8zJ?xUUpar z^(H~;XT9vmU^>)W0I8q#vcp0|0MUpY8BK>Dh{o)&5D`HXnHPM2{AM~Lfhej8f47B* z45Ao2vYU=5Ad0iYLPP~of*mG&6*09TvhLL?w3QH68ImRAz^TNC2V=JMx*1 zgdnQ2!$KqiQH>q>O-Eu7)!AVol7Ohejsm75DTtcvun=w#wb)V6bR+{&n;jM+Ify#! zC}cWPfT+t33y~5;J$4i}9jQRnXNQGI4Wa=%ikOZxAR4m6LZk)Jh#f^uM>-IV*1agz3lvq9r>lL{<>3*iq7SWCPKf z9Tws@5NQ_$zb-5j#duwq9Yi`!_`5Ac4iM?tQPyXhAhNT=LKFg#gB_JjM_~{- z*iJuB)zN;_ zt-ohm1MRQS_SQt}tO_z4duyTf(rr9Xb8WP)(Dv3r>mAzOx@dhu+pFH(P5tCFw7vDw z`i8c*0ow4P?QMuQLTGy%q4f)GZ)3C(L))v~Tu=RkG_<|yZQ|5VM?>4I-iS{9WHhwB z>aG9OPenu9tKK|L{X{ghy)Ds34{dKNv@t^4+Zt`m(DnwPjTPG7HfUpqwzn#QYq3!K~Hg#xwd!kJf+TLDh(}uRUH`;We?d^j$eQ108qRkN6-hODag|@dp z+TTLkI{TxkB4J1a0on_6|jxC$zo8(B=(o?{KvFLfbn6 zZT`^qjzn7^w7sLy77T6gXtaew+dBqr;n4PuMO!4az2ndp4Q=muw8cW(I{|I+(DqJ5 zTOzc*lhBq5-s?Ua-FOW?8AR#e{Wf9>h;r;WXF8^WD9;WHF%3i|cAPgI(?L{bhlQ8{ zq8d9cn2wnssNl1#&x(H z#3@bqyDh{D5F5AX@6UPOD=X1%(yj5DZWY?iq3vCbc1vh`e@DADw7qN4ZVPSiTD03k z+q(|!j?nh5N4qn$y&KT(3T^L3w7Wywy9w={(DrUdyEk~Rdz$%JZ2_?_c)yL<3SvJy zrkjp!AP%s@LTm?dkR3Bj#|{vO*kK`df;h~MnWkeGh$HN<5W7Ll+7W#1){JCayL&*) z)`Y*?LhJ=GhaI&{$375q*@r$DS^hlMx| zVih|YnvOFdRf&?SV^_|9*k70H|de;XmYJSVN1K!bA(i@ zyI87Y$#rbGjw9D`-2J+L9R2(btbvaEZ14&I;&h~lk4B)I=fuwkn5ast^Uy) z=~B!s*LmbRuUzMo>-=(EK&}hQwfe^xq}yFsu8YWZQMp!c(k~smxLlWz>ymO^O0G-G zbs4!XE7#@Zy1ZOhkn4(aT}iGh%XJmGt}55nP;b~ z>%6{PH<0Uwa@|O-8_RVQu1f{Iu5GFoT!HF!TEz5vrCG?z0NX3!=G0%rOJQr@B88)QabyvOc)lv_+?kU&3jP; zu7}I@2)Q09*Q4Zmv|Nvo>#=e@POitx^#r+|DA$v?*3Uze)xv+DtEYslSU(P@vcg(V zlk4enJwvW%%JnR{o-NmN{I#s&@uZ8-GW_=j_hA{e#Vf34*zY^;4H;44r592MW7e3o= zmFsPCytj9+@#&SnLsqOuc)|*6{Zy`>$@O!t_1U~o3;(?uUK%T}jFs0RE7p^Iqk7?9 z`bVzc%Jsio>)Y^7E&TU3yboEip5F&nSnH2m>mz&$@#&S%AuCqJ7gkv7uX6oOuD^4w z&*q0(`0qXNGi1ej0>4;ctsV6bT?-GOmt4E#+FP!Dlkt!Q?6slb!@qgBiC`|I-Xqn%XNIYP9WC_HP`yNFO6FG?{i;TVwxOdO zNUj^pbrZR6D%Z{Ay187pkn5Im-Ab-o%XNTUw~_0%a@|g@+skzax$Y>}fpXnRt~<+h z7rE{#*WKj0yIl8>>z;DmORjs%bsxFzE7$$xy1!fxkn4eRJxHzx%k>bs9xB(vV?;AV?}rO|GZQ^$f19w|%CnrQ1F$q_>{?Y}Q-rIdVN$uII`1e7RmA*9+x( zkz6m9>m_o%RIZoF^>VphA=fMAdX-$Smh0cSwq9*(RP74973#Ch+A#WcVf5?6=r@GX zZw#Z~6h^-}jDAZP{njx0ZDI7=Lwf6n;||pe&on!^wmy2hLhROlcSvtN`X1I>>%ClC z?fXLP)_#9TZ`B`Qy|q5bwbgzo#BS{mhxAtc5!PGlqg-3<$3pDZ{&+}l)t_L!wLZzU z)qX0(ZtYKp^j7^D)?4edTwCquLhRQ5d`NHAUtqnpzR0!JeksIm?JtM)R{a&$TkES_ zTkY3E?AHEzNN?5OV7;}z$+gvfE5vT?Z-?|&{Tp!@*+V6(gt^K`_-m1UPdTafF zYpeaw5WBU17}8tyk63T5|Ki$ee;i`B_J4=bKcPPK@4!9{>8+>tO!dO&iRW_tLatxR z^((o4E!S`4`X9M|E7$+Z^*gzKFV`RB`lDQblIzcM{Y9?7%Jnz7{w~))@$hDtbN0jSGavfQ&qsVnsxsE2+(d9aZT*s8_ zSaKa(uH(pcT)B=X*Zy)HU#=6#bwasLB-e@MI*D8-m20sa-Bl1Q_6KJxlS$D zY2-SsT&I)k^m3g+t~1JYCb`Zm*IDE`t6XQ3>)+%$yIkjx>zs0(ORjUvbso9SE7$qt zI=@^Okn4hST}ZAA%XJaCE-Kf>b1&Tvw3migH~^ zt}DxR6}he|*VW{@x?IzZ<1ORj6nbsf2`E7$epy1raDkn4tW-AJw*%XJgEZYtN! z|{2g~&kxgILl!{mCnT#u0Jk#apsu1CxD z7`YxR*W=`Ryj)L^>xptbNv<&o-5b$+^DbL9Q>#^(DE!EZ0}$ z`l?)Clk4kpeM7Eq%JnU|zAe{xxqdCzZ{+$Pxqd6x|H}0{xqdI#ALRO@Tz``5&vN}muD{Cl zH@W^U*FWU?r(FM%Ye)SvsnSot<=Q3J-g50D*Wu*aSFXd$bp*Nglk13b9Z9Yu%XJjF zj>@(5HFh*ry8>^A`WicWNN;@+9fS4OI;LF5lIz%V9Y?O?%5^-s_LuAUa-Be~6UucW zxlSzCN#r`IT)X8unOrBA>lAXGQm#|Ub!xdzBiCu=I-Ojnm+K62ol&kc$#rJA&LY=Y zO|0dVj5xxz5M6^;tE)s-^E-6bR|9Pn!i#cP;xh^l)738|2Tvw9o%5q&r zuB*y*HMy=X*EQt2rd-#O>)LW%N3QG2bv?PRFV_v^x}jV*;@WzpH&(TDr8f!bt(S6B z)?4dla@}06TgY`wxo#!bt>rpEuG`3UTe)s0*X`xHgIsr%>p;2gB-fqgx{F+QmFsSD z-CeGG$aPP-?j_f~<+_ht_m%5@a@}992gvn6xgI3fgXMaNTo0A&VRAiOu1CoANVy&* z*Q4cnj9ibE>v3{DUalv|^+dUzB-fMWdWu|6mFsD8JzcJ6$n{LQo+a0_<$8`>&z0+W zay?(J7s&NOxn3mKi{*NWTrZXDWpce-u2;zQO1WMo*Q@3Fce!38*K6f^om{V%>kV?f zQLZ=1^=7%=BG+5xdYfEtm+KvJy;H7t$@Olz-Xqt0<$9l7@0aTXa(z&)56SgmxjrJ- zN9FpMTpyR~6LNi0u20GJX}LZl*JtJWoLrxm>kD#yQLZn^^<}xfBG*^t`kGu{m+KpH zeN(P)$@Oiyz9ZLv$n{;hz9-lB<@$kK|0&lG<@%9a|0UOt<@#^Aej?XT<@%XiKbPwl za{W@SU&-}rxqc(p|H$=Qx&BwK-^ulRx&9#6ALaU!Tz{79FLM1=uD{9kce(x{*FWX@ zms~sQAApvA4ldU&x%QT8AGr=E*S>NcUalj^wVzx^lavfW)!saTxXN(-{d;GT<4JMoN}E@u5-(E9=Xmd z*ZJf+zg!oP>wxOdONUj^pbrZR6 zD%Z{Ay187pkn5Im-Ab-o%XNTUw~_0%a@|g@+skzax$Y>}fpXnRt~<+h7rE{#*WKj0 zyIl8>>z;DmORjs%bsxFzE7$$xy1!fxkn4eRJxHzx%k>bs9xB(vzQ&rORi_j^&GjLE7$Yn zdcIsQkn4qVy-2PX%k>huUMkniA`0u|3x7AqLW~^*CR(2RGJ405ie|2(~>VoanFmTP@opHmC}y{^xPtR#1N zr;X(}5z|jmlh|tFoi>gd)5cXp#;7juxC7!L`l}&*y!1}2tUgXf$8o$ICq}%8@gi9^ zW&fEdoa4BB>pl1xEpmh?e$iYHI`+Syj_CI@QB1Y7|3w_#+c!em_`&8#;nOQ8-0I)7 zc3jFG-|Eh*{L+=xqKxyLD@vlc>br2lAPB@Qc|0_X7y*kl+g3l*pEdlNIiRBx^ z_dzV57(N*z#_&m-P{!0B zV}m`74yQgxB3%V{l7ec2%)R(~zfNl~nQ zU^A8RM?IH&)mDF5$WKk2uU^?5^?3zHSD#PR(H!TJkK^1`|39nd>iO1*qW+H_|5qyd zKjzqu|EiUoLI3r2E@#>~%Garx8Dq*!y+=iJZjN#sU#DfJ?^%7F)R}YU^mX!NnyuP@ zGaaw&>qN?ou>g&;X{7><18Ce)`SmzoXL}}$5i<=u@9V^x1jCx}IdevIDve5&Euynz zc&co^PO{Wk?>Gu$+-w-bPuQuB>^KcDsPpu4)W5>!9L#(^b4gAeT}ZxktD`%AS3aM) zs&m2TyiY8z=#Ki5%c-f-J)c<4#^JZUVmRx3?y2#0s)uU4L}O;3hhD+$-FaBAR3GEc zRTw9=#CTyf#=fmEK3{yh zQ#cn^)(}&bn32Q`r@f!Tqn(xy z_j+HbH3=s=r z%p48ls!|vm_+yNn9OL6;7<=<*q%msH zE@IZu*q6p!)c&H@dm=oiCtzGY0%HdneMez_ek8{DG~T22$uzG?W8uMQT{IRRg85IH z@1wCljRl8c-Jx+ejeTi6MEqbH4-5q}kj5f3x@g>55$l6#>`v!dkj99Wv3{WvwKOk9 zW5Y98NlRlYH|Fn>VmwIW1RC$1#mW{MbDhIHB8|)Faco78<4>CJruod`V7k*|caP>f zX}+NZ*89_Sl9c8jXnk8Ttk0+GYHJb9H^;=-tvtr>i7v=a_&!y>_Y)sei6uO3w zM*-8K48{lvFs2|+8uE0c>t{kVtWPJ;UGj7z&lvI?AkSO!Od(GW^3)|yeex_L&tdZT zje+g?XpDKsV~kGYQCe9@<6~OcPh%Te$wA{JT4_$>!z9>ygvO)EFkeRFz~PwJrg1*C zy=d%DZEYIUQu~#zjXBxCcc<|Kt)HW@tq;~K(3pZAO&5(h$q<{yn}fh?pfNg~;VZh5 z+YnhYXrwDS35|>C%I{5MIT{nu*q;m)Xlz;u&Vn??r15D*to%;%5j48zVC7XEjFoAg zurB6LXJgz>>sx6)l;*3ZVEs;2j5lcRR}J$c(=o2BfwAvYjO}UtFg+)y_ruC#nwO_} zOnN@-LGuMP|4#FwG+#>d6Esgj&r6+Yeu>tn?j&0$j8!Moyb8wqw4S9i=Iak&EZY-f zvV9n{cgNUb7sgG*d^?S~o9?Ta>oHH-7GoA-`V-T92UZ%?jyd=fs#V0>)B#F;1b6_nY+b z`<_02+tRtY>D&?#)0UWlxxhc8y}pGocSpx~j`)GZFR6f)B=qq(i|&&obf4s-^Laq$ z)0VE!gV{iiqWOKA7oh9Y`3>v!Xr7ej4;EsjQ+ABsXg-eSQ|Do&C^2OhV19+>*Op_x zhL|L)G5jT^Ap=KPnrW` z)`J*#()=)8OZjN-?8ABun)f|``8=AZr|bMG&94yCgXSsd{=7@q!%likr_p12i5~0u z^jMdqd3>7xLD$LQ*f9S=*T&75G^fYTO|M(_)BWFwp104?V|SMxyV&JGu1bh8ZUKxX zqGC*57UO>6)6(@5K%TecnMmtt3WLcR17l_K{7IfJ?wY z(G&ANH2*;J8}z(%zb)3oktZ^F7N5q-seu?vpTu~30LIiuFc$2C(TC=VXkP9(Rx0(! zn4acYX#SSY`4^pYHky~9c~d%Wdpd5^L)bOE7seHIZf=@qqV=UT-%aOGj?U)}&D+v^ z_g3sGkq+aVZ5WTx{MjbV%caE_cMHbjG#|JY^ZuzZuA%u_nh&A->VA5x-=TSw44B^{ z<}NX9$6zHLjYTSA?$G#d4(5C6Vmy%tWBf=Mhn~i`mdOibVn1}IrJ&YN$VEmC8&*gZ%6ZIG=Dx9>#OOwSyy77qXovP(=qm{ zfwBKIi~-d#I&}VPT4DZT6~@CYF&3GEadTCSeU@O{+Zf}-85jd=V%)O`qi-XOo#$hm zS07^&Vu}(oo|sz=v3`R*@tROnBVGPJh}qo>E;+q(fN#~+f|s(za1TSA+0~4^|W+8 zkLmtQPRIRP3wtNiyfvLexCL0r*Z||Pr5JzFZJb8V{p9>b>v@`@4W!RCi<)6Riyosn z^cbb4bIU^K_IxJVBXq22bUxMTe4@<7`c=AJ`NLs;!3SeBUyN&LWj|eS^=O=u73-;K zY<>>&f9Tpf?Tz_NFN_&z{=>oi8O^uRdKsF>r+GV?=coC2nm3^N8k+Z}c|$yQ|@a2wRY|;ngXIh_6>k$rOWf2|s1kH=kxxJ)$3z{EZ1Ev{$ zyl38ldHPNm6Vv)3^30<3DYU+Yo-_Bh1(W?K#u9xoo;!iD#Q=l=b{a?UYgeH z)48>ybIW)V%t2a@O7o>OPjMLQQ+i|Ub{6Aw8uy;Y{Lw&+dnaM6LFX`m=4oiYf*xys z+PiQ+nELb>wV`wHCjXO-SdZKu<4&62YlnFo+IyGo|7f)LB3%QQ=)P)4_f->GPeRW2 z$FVE0KgQzZ8AqOP^teZ%+jx}bH|QEjOCLM0>0_r3eWbjgD>glS>>Q(&Tl7)Wjm8aG zVJ=2vOu7e#(nnA+@`R`7gl@FUm&Ow0xkvMNWEfB588S4aF*|vdkY_r1YLjOY?Mg;t zBl3Krc@)~Uf;>-X-YaN@KAViBvGyvQXSS9YyR63OZiVslRE&RD!x({{C;y@6{IAQg z;?o>s4LYAgbUr2aU}b1mjPGflxf|wx(Z^t>E|^c-jqxVU!)?VpXGe_rwqblj^Sqld zZ$OW4tIe3l=zy^|U3;VYV!oK>8)zO#kI^uCj6Tx3s~?zAbPmVpeDdtYN+&v>v~&)E zbPhLZo`9GxbUyv*99Gi#?NAq;#{FD}F)rg!u==D_ta{fw#_0i<)OU&AR zSlN~yljf6XeuL(%Xr62%`0X^`N9$#2{wF=pe4yjbB<2pSSET#4 zU~25@F&SgSp!r2qtWg_u93`KhUx z@2rOL#x#rvt7B|U&ry@$K@nF?xpFz8WM;j7N*DL z1wHQVw_s%vJ?<@!VcxMH#)&kaNpl~%59iRex{ub6(t2T+F?o0FdG;d7vzBErq^TISQNX{qZ zDSH~uH*~D1G`~pmigc_|#AKp*OPa5y$LKLVMs@dM?<9I0%hKaGksik{G|xxOGrB() z(c_qe9>;q0IL4#<@MwD&O3>rjn;yq?^f~kmJ#WmU=eIR|!1&YSm4Y6xsl*>AJ{~V%pNjln-444d%k;u7@$f6pZ7mVl2NLV}E*WxqBw&(`sRSuoz>i z#u)1^#WW--VC+ZhrD;7mopVj{WTkWKNat3B{JrQLPSN})%~ukCgZPM3Vas0) z;{o~@$wBwSRGRzI+#zRSa=xJT#z71@Pmwd*?=akHg|XTSjP;shj6&!9pf=|3S7N-_ z0%OV5w9*peLOO?ubPj8#VP$%CjK9d^Lwrlx8$k2rbUqL0d{WW<=A!$p65Vez=zi-@ z%r0Wq?1JrMXN;-FV*EA+WBBtJ@1MhXg;v(mcw!t@=F)iIjrkfHd(+-3G}fcNS!vwh z3uZ8lk0xTip2oqns}7Cp>3R#K>+QuXFbC*98BWjDjp%+@K=(=cR%j0`z&NV`#=`Wx z9jhVc$>{!xO7~Cp=~zin1LNB~7>h>2m@PcUd+L0=ojt?7h<%RB}1*bxP~=S?%>trnc#QzRtEoNHd%p^L}~xI#+cn zQy=M_PMcRD#XKBDj%kUMO{Y_@=i^M}m%*vpP~bof=L@Dx*{J8c3~mIzAU^gia&sAuZP_%WR~hI(gMWdZg3P6-ch5 z`t~(PN~Y8H(nv*gY7!r*u}&XzA`Q@~MFgbzI)%@Vv{$FXQIPKF)PS^h2(c4=y+$SORLiX>PqX>z8J_> zI@O7dG+d{DXx}oO9@4%eIwhig4|R%6`@BvD9dC19Sll{&j)YWLrx&@A8tGIrB2s^y zW*0)5r_;LVNPBepiynvDI>nBP?u$+i-Jkxaf{tE{?$6vhx$}UmrBg3DUU!{7(eb9~ z6g~#XEjqc1BVE?%Z@PVNbt+Z>UG&pI$LmPvl0~O~OQ5Ty)84p99dxQr=Q2*G)pRav zbgEhyk>=_YHTgT0 z*6DOV**mZB&H zisB5^sc;H!S5#-AP7zg#<{Z$eZOV7*@2*_ZDZfhU`wBYEPUY>2>3FNZJ%n2upi(R+ zg-#LF(PKNsb-J#cah&ElEmtY7GgPPUD#de_>XcPk{GB5@eNmS9&Lf?EO!(!Mz;Rs& zI^I!A$#hyc0$mZET2pGQlQRn40G&>bM4GQtEJ}NIx=H))=roqPuR2wx6#rt-(en<5 zC67+u2O-rC?uH=s(CIUg({DP7Si_b}}HSEsK-kz!m5I^I_5vg*{GQe~a? z(D6Fz)R)qDopzCBtxmluozW>DrRO?*r+t2xgO0bpB95L`r@oX*>l8Tgo$Bi9lv|~Q zPCK1^D*y6IzA8T_2sc zQa4+t$;CnL)G1Is7bJ3S=ya31k2-CpF3z=}WDgNd9RI`ve~gNdB#I>o21i%xH7 z-(;OO6!UW>ayIESGq#^Av2#hM^+o(#Nu0Mjt&QpDO6tV89(25p<^5c4C!0OqIb(GSDCp-(?X1yhR5U+V8t05o6V-X9 zb)M^VL!D<@$M2@Ted;{ZI%#zprp`01Q(C88>O9jrt#o>!&NHnuT&HpBJkvVMb;_*H zGo5oxr|RlF(>srKs;SO1gA?vn(D4?i^UUa^(rK?c&rD89oxI2V^2+SA(CM$yNJDkX zK0c}|v$I^Mh$>}sPUy6M^gFK{&Mlp0tCZ7uq0{~Gzr1oe5pM?_eJ7=KIyE01)s@RB zuTy4~@;V)K8Z-W#R{>|BP7PHm=uFn>k0igm3OO5f+DGYvPW#nophC`{IxSGCu=7r* z-oxK{6>-Ad2|AamDiw9&=`>SWiaEJ->O!fePCb>SnA19VpGw7@-Z~{$mJ-fbo!$?7 z=T*{~uhX<_zr0F0dvyw=bVsK*YF{bml};yAD((EzsfEukuQE=OKZ4G)6s3YXC05TG zWt;{&eOKpM#_6k57IkK2obftERjI7AP^Zg--g%XCHtDolrSi@Zog%77x`Ojirzh$& zPzA^9ZqU)2tK(I0+&UGeR5&<|c&ECmI{B+q(P^&JT=f~Rk~2i7u9Oz*RARzA)osx! zu1b}iV>Fntof6DJcUY$W;l`6>-lOU2u%YV3^EDanDvt|rb(oo@6<>}u+q&}o1=UNh&3PNUTE znmgei2OY1=y2P#)P8ywtwn^-2>6F&#$+5()R!(c3UiC}tYVC~F>DrE8UIESuowljR zA;3AN(+_oD2RMJ}R6*U>0gm_ILC5>P9Vxj^UjmVe>U4fTQWKp<_dpt`)0w?U3v~L` z4QZcF3#j`;rz_Nb)2UEtkO`gy9sQ+0QeK^QmPe|iQ-Q=tJ$3RfiZnx~A2E@(=~S7z zt2&idUo!_d?}AD7^-+Km^J&oW*3t2@=~SA!Dmwj&2QpBntLpVxfHOg-Db%ggsk3?w z7T}!Ksj7M{72v$kX>>89h|hwK*HwKD8{nkVsjYeq7T}c8sX$z$);f(Wf;1vH(d}EV z(0DgTgN}EW&Lx>nKj^+LqSNyDI6`BcuBxx!1DpXmMOCj~0-X6e z9nFcfSEn56douyf9i58gMf$4KIQ4odz={7N=;)W#*Qo(c9-UrCL#nM)3%aj+=#+pS zhv_=SCFj;)lAKp`>YWRge|369=Mv*((D9r?=(6gRK)pT-a4PF`f{xcwr`~kD@jA_` z0CKHP{_68|fOAHtDRd1!5ANt1^m`R_yc}gfrq$^--Jhj(YB2>}E1h;{LmIBr5bBoc zbc?zpI^|NI9|D|*I(?vhoaYEb9aDgJLD3+r@yAyOlq+Ga=UuhR$W=IJzox;;9L zpXcXNkETxffAe#-alYwPe1V^9kxq+dI8=@?VWK zOQ*Ng?a*nxI$nF{hE5HYvxDH?kII!#o!p_5Zfr^L$H$?2}s z7V4(yRE)YUI-OeS=j!BK(dkTfKUZhxolYO-{qpMK#C#icypihu?BZn8DeiovDmtyE zE>NdK+tE$XDSi&5bvmU#h;&w`&D6cnX|H-t?&3uJH|Tgds7t5QSM?m(#VMmxCF)x1 z)cpXu5jxGFZn;h=Poq1k(|PJ1>2z)%I@i0P<8`7gnNEpI`MJ6{MRmFn&(GD>X{yua z;(o4f&S0G;#PM@=cNXh(ri7oXhjU1$nQ{GGJ)J*wDy+I*j@SF3_H~*Dcj{}Pe$HT>F30q9^>-Ercj~!dfOAl%1nT>W1DyLh?Nnb^4RC(x zR7ZVXHPA`=A?WDG)N{cgr;tuJ)N{cgr=d9Ocy1skS=L zQBHTA-m2q`cBbo;P<7dhLb-c;Wc%7cA^PJ+W)#r_*HuA1hQ)#;)-&uLB@om#2$obHU)>3oI6t{Kj1 zoysIh?3(GE(#dPxFRxk7Q=Q_pK??sZ=y*%1ORduu>PqUAWdq0-I^}GKG*qYB)Gg7e z0dtPVOT} z7j??r2kDJYKk4>G{TXz;xYT9Rsl;)R6?7`oAE}*ADXANyQ#$Ha>-2&iqmw#)p~vWn zP8q24{S|b)Le!Ss8a&!?(39>_Wjgp zK6Q!dw_0a7Tj@S4pi>FDKkMssjk-QMwV-Zx@V>1$`c9n+r9--*)3a?zA9dPCT^#ij zR(!qrXcM{|I+aL^R9&a&Tadcwbdb8qI`v+QZlg{;QzKo_X*qSTby`7P6j#vk`q5*X zQKwt!v9G*N*Qjf&Q}_(%M(cEioU3%YLCzC8wHO2PZ=F(53g;bkynGeWrPS$b1*GCS zy_$p6Os8#ikp}B@C=b#ionl2oI-pbk(@6JpT0xJ)51q!ZL6^uU=;)aPkn-ykk8VRf zowiZeTc>8UZmOPHoid zo>|T$ot6e7ZP3Xz59z#42kRld(kWFIq{zNO$NQ8SDT7XX&LEZ3X*{JiIyD`KZj?@$ zDXrA$@mO@nb(&Ah9{)lDh9YJ)-XaYwtV2qpG&H&rCu{=v_KNdJ8l3fRvC%AR!@@Y8aA97?{k2 znF$aJ5Rj@;rAi5*dX-`U=?H=f2!bdoDk6vqq9{cLDgWC0taHvjZDzu~-*dm`e?E8^ z=AHHKwf0`Sm$Og3VBY!OFT zf^H)kl|oSU5Z>Os*9hu>XhRM`gAiTWOi(_eeO7|zA?glul4aahL~jft=p-Uf2|?Ep z?aU;od^z6U>?H)XMr2DPC=St%VuD5^;+`gGCZe&c2-=8f$uNSBA{t6{{(z_l)frHp zw>OjOd=k;w5hPp$qBAs}BN0^{No11|?V&nXBU(;%?niWm>ih;#dm7Jw5M|PGUAF>n zy&jEcIHFLhb1)(!)j0vtK&o>IqE~4=cOV+JjKu6SL>)2+x`pV6#ROHW$lLpn=DQhD zb*eK7k%j7XB3eeX$xxO6-O+yBvyENQ*L>(+d z%VI<}nENi{-a)it6hUVZEu?k&CZbnpovvDyw--u%Z9>$F`Z^KO4@-#_2crEn?Jpw= zq5gaWQ3Cbn2}EUICE>0iIz{t6q#AFpa~UFQiRf4$L9vKJf(Xh%w1G0GBicpV>-C6I zDS98#OC}QT5~5Iw4ApsiBTj}GmvM~|T{{tCT+T%xIuh{6u!0+jXn}#C$%vX!*=j_8 zaYVKs(Pb+82GKSe?jJ;bsjO}d-g^K_4Ufseqtg z5M4V+P`O&Xy=gG^Uct3O^gIpM4^j8=M3##vaz8;c5T#O`8xYOhO=L$9ogGKeWkdsE zOuK?JKEc}?31iw7Tw_FkQhR+6ZKw7!5gn)DCL#KYhFgVb8;mDbaQhIY=MwZaqNw)? zx`$}!GX&MC&0D`o!*xTnl!nVdWPFb>$0J%n{jwO*Au4+ZQFrR=vxt7AvYUvWrn0Ja zczgR^Cpt}thQoMi1(%4Z<+}tq5H-yw=w(Dt&~R@c+Dqek0?|Sm?i!+(Xtb!&~n(8#vmqg+(a}F(5u`AL_3c^GOXl|Ao>>Ckd@qJK{lTtVfcK4ETRw^mz#)=Lz}gdtJ;{icLK`pO3sAH3T1aC zmxyR64d*~qo2KDqL^&T2<{OA?Gz}*Z^`!BjuFDhp*|B^Qh6 z0F~t+IslYln~!J^#Iu;&hG-60FXm1msz=eUhz3JEi@6HTd3%3QSsO%U z!Fn;*A5k&HvzW6X`ku;WA#zc)NnpaPwV3+=Q4vK~5DnT)WPvSsdu^-)H9=&D`B*X6 z7g60Df-Hz`E+S|OqKnA{twCgjc|b9D0MRv=;}vt?BD%eSp!uBYKs}HY0kC%05J7gF0Qp{fKB1)aeqgOdHd%9So}@mzfXGID_5jhRR93$&Z@mW9*#nXN9inq6 zq6ySzg^1Qte=b90b`s{hh*nX5o
- $([System.Security.SecurityElement]::Escape($Title)) - $([System.Security.SecurityElement]::Escape($Description)) - $([System.Security.SecurityElement]::Escape($Author)) - - Expansion - -
- - - - - - - - -"@ - - $pathCharacters = '/\`*?[]:><"|.'; - $fileName=new-object text.stringBuilder - for($ix=0; $ix -lt $Title.Length; $ix++) - { - $titleChar=$Title[$ix] - if($pathCharacters.IndexOf($titleChar) -ne -1) - { - $titleChar = "_" - } - - $null = $fileName.Append($titleChar) - } - - $params = @{ - FilePath = "$snippetPath\$fileName.snippets.ps1xml"; - Encoding = "UTF8" - } - - if ($Force) - { - $params["Force"] = $true - } - else - { - $params["NoClobber"] = $true - } - - $snippet | Out-File @params - - $psise.CurrentPowerShellTab.Snippets.Load($params["FilePath"]) - } -} - -# .Link -# https://go.microsoft.com/fwlink/?LinkId=242050 -# .ExternalHelp ISE.psm1-help.xml -function Import-IseSnippet -{ - [CmdletBinding(DefaultParameterSetName="FromFolder")] - param( - - [Parameter(Mandatory=$true, Position=0, ParameterSetName="FromFolder")] - [String] - $Path, - - [Parameter()] - [Switch] - $Recurse, - - [Parameter(Mandatory=$true, ParameterSetName="FromModule")] - [String] - $Module, - - [Parameter(ParameterSetName="FromModule")] - [Switch] - $ListAvailable - ) - - End - { - if ($Path) - { - dir "$Path\*.snippets.ps1xml" -Recurse:$Recurse | - % {$psise.CurrentPowerShellTab.Snippets.Load($_)} - } - elseif ($Module) - { - if($ListAvailable) - { - $m = Get-Module $module -ListAvailable - } - else - { - $m = Get-Module $module - } - - if (-not $m) - { - Write-Error ([Microsoft.PowerShell.Host.ISE.SnippetStrings]::ModuleNotFound) - } - - foreach ($x in $m) - { - # Get the module path and validate that there is a Snippets folder - $snipPath = Split-Path ($x.Path) -Parent - if (Test-Path "$snipPath\Snippets") - { - dir "$snipPath\Snippets\*.snippets.ps1xml" -Recurse:$Recurse | - % {$psise.CurrentPowerShellTab.Snippets.Load($_)} - } - else - { - Write-Verbose ([Microsoft.PowerShell.Host.ISE.SnippetStrings]::NoSnippetsInModule -f $x.Name,"Snippets") - } - } - } - } -} - -# .Link -# https://go.microsoft.com/fwlink/?LinkID=238787 -# .ExternalHelp ISE.psm1-help.xml -function Get-IseSnippet -{ - [CmdletBinding()] - [OutputType([System.IO.FileInfo])] - param() - $snippetPath = Join-Path (Split-Path $profile.CurrentUserCurrentHost) "Snippets" - if (Test-Path $snippetPath) - { - dir $snippetPath - } -} diff --git a/newton-cn/bin/v1.0/Modules/International/International.psd1 b/newton-cn/bin/v1.0/Modules/International/International.psd1 deleted file mode 100644 index b444c92..0000000 --- a/newton-cn/bin/v1.0/Modules/International/International.psd1 +++ /dev/null @@ -1,13 +0,0 @@ -@{ -GUID="{561544E6-3A83-4D24-B140-78AD771EAF10}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="2.0.0.0" -PowerShellVersion="5.1" -CLRVersion="4.0" -NestedModules="Microsoft.InternationalSettings.Commands" -HelpInfoUri= "https://go.microsoft.com/fwlink/?linkid=285548" -CmdletsToExport="Get-WinDefaultInputMethodOverride","Set-WinDefaultInputMethodOverride","Get-WinHomeLocation","Set-WinHomeLocation","Get-WinLanguageBarOption","Set-WinLanguageBarOption","Get-WinSystemLocale","Set-WinSystemLocale","Get-WinUILanguageOverride","Set-WinUILanguageOverride","Get-WinUserLanguageList","Set-WinUserLanguageList","New-WinUserLanguageList","Set-Culture","Get-WinAcceptLanguageFromLanguageListOptOut","Set-WinAcceptLanguageFromLanguageListOptOut","Get-WinCultureFromLanguageListOptOut","Set-WinCultureFromLanguageListOptOut" -CompatiblePSEditions=@("Core","Desktop") -} diff --git a/newton-cn/bin/v1.0/Modules/Kds/Kds.psd1 b/newton-cn/bin/v1.0/Modules/Kds/Kds.psd1 deleted file mode 100644 index 967f3f4..0000000 --- a/newton-cn/bin/v1.0/Modules/Kds/Kds.psd1 +++ /dev/null @@ -1,21 +0,0 @@ -@{ -GUID="{176542F6-2A6B-11E0-AB18-D010E0D72085}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="1.0.0.0" -PowerShellVersion="5.1" -CLRVersion="4.0" -ModuleToProcess="Microsoft.KeyDistributionService.Cmdlets" -HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390781" -CmdletsToExport= - "Add-KdsRootKey", - "Get-KdsRootKey", - "Test-KdsRootKey", - "Set-KdsConfiguration", - "Get-KdsConfiguration", - "Clear-KdsCache" -CompatiblePSEditions= - "Core", - "Desktop" -} diff --git a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagement.psd1 b/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagement.psd1 deleted file mode 100644 index 0c111e5..0000000 --- a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagement.psd1 +++ /dev/null @@ -1,131 +0,0 @@ -# -# Module manifest for module 'LanguagePackManagement' -# -# Generated on: 10/11/2021 -# - -@{ - -# Script module or binary module file associated with this manifest. -#RootModule = '' - -# Version number of this module. -ModuleVersion = '1.0' - -# Supported PSEditions -CompatiblePSEditions = @('Desktop', 'Core') - -# ID used to uniquely identify this module -GUID = 'f42dbdd4-4358-4067-8155-a4567a0aaee5' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = '© Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = "This module allows for programmatic management of a device's languages. Users can install and uninstall language packs and features, as well as manage and query the language settings on the device." - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# DotNetFrameworkVersion = '' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# CLRVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @("LanguagePackManagementViews.ps1xml") - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Microsoft.LanguagePackManagement.Powershell.Commands') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @() - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @('Install-Language', - 'Uninstall-Language', - 'Get-InstalledLanguage', - 'Set-SystemPreferredUILanguage', - 'Get-SystemPreferredUILanguage' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @("Get-Language", - "Get-PreferredLanguage", - "Get-SystemLanguage", - "Set-PreferredLanguage", - "Set-SystemLanguage" - ) - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = @("Language", "LanguagePacks", "LXP", "LanguageManagement", "LanguageSettings", "International", "InternationalSettings") - - # A URL to the license for this module. - # LicenseUri = '' - - # A URL to the main website for this project. - # ProjectUri = '' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - # ReleaseNotes = '' - - } # End of PSData hashtable - -} # End of PrivateData hashtable - -# HelpInfo URI of this module -HelpInfoURI = 'https://aka.ms/winsvr-2022-pshelp' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - diff --git a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagementViews.ps1xml b/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagementViews.ps1xml deleted file mode 100644 index d2c94a4..0000000 --- a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/LanguagePackManagementViews.ps1xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - InstalledLanguage - - Microsoft.LanguagePackManagement.Powershell.Commands.InstalledLanguage - - - - - 8 - - Left - - - 15 - - Left - - - 70 - - Left - - - - - - - LanguageId - - - LanguagePacks - - - LanguageFeatures - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/Microsoft.LanguagePackManagement.Powershell.Commands.dll b/newton-cn/bin/v1.0/Modules/LanguagePackManagement/Microsoft.LanguagePackManagement.Powershell.Commands.dll deleted file mode 100644 index 68b79b33266305a3aed2792c5fe1838f3c9278ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27136 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 diff --git a/newton-cn/bin/v1.0/Modules/LanguagePackManagement/en/Microsoft.LanguagePackManagement.Powershell.Commands.Resources.dll b/newton-cn/bin/v1.0/Modules/LanguagePackManagement/en/Microsoft.LanguagePackManagement.Powershell.Commands.Resources.dll deleted file mode 100644 index eee43234d414fb207345b0305f3b6aa5990e6c31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKU2GIp6h1>2g(8Fy0`j64+magUWNR0&V9C-yZQX4*Y+HXqgz3!fcI@oT=FV)( z22hOg)u7>lL`{4!JQ1VO2QX@Q@L^P-WvvU6(Q4Mjx-C1sU` zZTWr>iCHOB)fcWWh9`@n95~Y4xUs!6QC%1z${B66<&BhG-|Z(_vvY&7foL6OxPT^h zp%N%r6s`oCH8F1VG=6UBGz#XK+9>-b(PsVEXp>>gLVt7-O>#d=bdH^{nvM}Yw0iDt z#$p+|=3a;KvrTelB#%cJPd$JNYue5PH%6KS(J@nniXEe|Wzk{&c9bT{0==oE7l2V? zJ%&Zr1=E`;OElO#=6;&}3Sw+)Xe|}+VJ;X%_|sGnL^t?=+$CKH?|0u^`-$|cDs%&XAY-Qa*CU3iUQ|_bz?aoXSzeDQ zRA)Wceooe=f(7Xh%_B1q5oH(Vzealo zI=7CIPX$sGPzkl95I?32FN744MIL?@dM=oJ8b#m5OjWbz6A=sIQh&J4m4YrrN|b{T zw^g*v$VYdS86yl7+J=7KuZY=5@5n+SEMQ=aMWJ4~=R8zxodC25Vs#ct4qd>)U?Gul z(R#EJT4T@K*>nkN#*0+b03?;QwO41Y~N(E{NVQRlPkv?UL zf+wv|ib&OjRkB>)G`5e$LatvDxkQe6jlrovEV^<@MDtQqD~=Um6W5QV@~sFb+ww#x zqX=>#$3uwph)S#;&>~Akrm6BtFKu0f(VqDlNMizP}o7$b41{KHIA?q z@Vl_1RyRmGcVo!`01hRL1K#N|q2!z=?HKebbWeCe36Ozc8R?d3UmmZ-{3D($OCJGk zusA+wB+-Lo(IQ{wzI0!2KL&`>M^HN`9j_8yM*9Qzi;-fVpi5`*z4&@|Oc&`r^f`oe zJTpBu%!?pgwashM8d#(2U467Ij#WIY7oxY8<5xV(wLz)VjnEl~#&(=!CYH?U9zC58 zoT?`eQr@*y5C(IRS^o$He1p8@N`_`p zbEMb?*&*y!M&{u?YOu)CIfwPsWl+5n{ zn-*Xr+Z{hb>bcfLN)Ko$!8MPTUp!{wsj`-EfY=0XwlmOgA6xfLWCiACI!F6~Gl%&S zWIQcjfsgr1m1rJ*pISmM;i*uL*xDV-lMU(arvoS*U@FH+Hz)bX!_TOZ} z$)|?V)z1x&*b}$<{{N027il;A7(YrK_?llxcRHutxT);J=k={{^!H?c)aNJlTdRJC u`Q8ZJqQ;{R=F_k~rz`heeOm8yR$0$|x(6N*@&Am4z4u_R`&<0yJn$!_4sWXf diff --git a/newton-cn/bin/v1.0/Modules/MMAgent/MMAgent.psd1 b/newton-cn/bin/v1.0/Modules/MMAgent/MMAgent.psd1 deleted file mode 100644 index 87f380e..0000000 --- a/newton-cn/bin/v1.0/Modules/MMAgent/MMAgent.psd1 +++ /dev/null @@ -1,21 +0,0 @@ -@{ - GUID = 'e1383a06-d48b-45e0-81e4-5ead146e81a8' - - NestedModules = @('ps_mmagent_v1.0.cdxml') - - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - PowerShellVersion = '5.1' - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285551" - - FormatsToProcess = @() - TypesToProcess = @() - - ModuleVersion = '1.0' - - AliasesToExport = @() - CmdletsToExport = @() - FunctionsToExport = @('Disable-MMAgent', 'Enable-MMAgent', 'Set-MMAgent', 'Get-MMAgent', 'Debug-MMAppPrelaunch') - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/MMAgent/ps_mmagent_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MMAgent/ps_mmagent_v1.0.cdxml deleted file mode 100644 index 48becbc..0000000 --- a/newton-cn/bin/v1.0/Modules/MMAgent/ps_mmagent_v1.0.cdxml +++ /dev/null @@ -1,165 +0,0 @@ - - - - 1.0 - MMAgent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psd1 deleted file mode 100644 index acc0910..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psd1 +++ /dev/null @@ -1,13 +0,0 @@ -@{ -GUID="eb74e8da-9ae2-482a-a648-e96550fb8733" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="1.0.1.0" -FunctionsToExport = @('Compress-Archive', 'Expand-Archive') -DotNetFrameworkVersion = 4.5 -CmdletsToExport = @() -AliasesToExport = @() -NestedModules="Microsoft.PowerShell.Archive.psm1" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?LinkId=393254' -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psm1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/Microsoft.PowerShell.Archive.psm1 deleted file mode 100644 index b76a89b6e9402c70815d5e299eaefa6d6818c0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108624 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 z 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 V{^uloZJuW)KbPB8C?#L={{i*HfJguU diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/ko-KR/ArchiveResources.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Archive/ko-KR/ArchiveResources.psd1 deleted file mode 100644 index eee2b4eb29b89719a67c4c75a3ab20626f41956e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3710 zcmb_f-%DF(7=ABy)3IF?CU}vH19ez0bXxbbRM0JMbJ$h3S;FvQZUzms8e&%5RM|(;Mwmr}JJbqttPLz%zIZ4cS-XG8V zywCfdfBrrvmh{Vnd?mwjO%n30#AQUzNQYdI*Q8zE!u0~)JLDal?7-hed0pPd=N`F? z>v{PA@1IEv?&-w2PW=9+wBbxUuDtUN?`q-q9!bH^7`)tomrwATgy*ll|MGL2Byk;q zkC){|36G3^pT`Ov$FlmoTG88#>$Vc4{?!k!$9l` zqP!;GpjM`L6=MumbB{VU8Ar3sI_-BXd7->mYL-jRP}Y*B&4zMgCR4QJmcwhYm|RXf z*+*ZXs*MF!dZnOZv84S@x@=|`g-!o_%x%gt{|);NI7Z8T*akU zkALiiI1t^>MZmNCdShV*^|SMfrI>qw_{w?HI&IiaLpkQe+~0A2E4P<Dg`}|7pKKV-jG+mAKIUPD0X8exoWbNXLN@X%dOnAjH#|8K(Ej1 znCrMs)IrjmJG$=l$f}!qP43jzqZc*eY$jJ1oV8Vr;dOV>ieDalsvd&v= z466GzcXZbt6c6r!4L0XjaJ!&p4DL=jEk~6M)_5N?Z3eYhU1O>Z=SjFmk$ctZQ;kS1 zzELndb&Rr!$Z71=(=ALJeWa@Q7sYC|iTxiq0h`|jcC25C2X!Xx*2gP6pW2EC@$=b9 zy JJYzARe*rYni0S|U diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Diagnostics/Microsoft.PowerShell.Diagnostics.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Diagnostics/Microsoft.PowerShell.Diagnostics.psd1 deleted file mode 100644 index 6867cc0..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Diagnostics/Microsoft.PowerShell.Diagnostics.psd1 +++ /dev/null @@ -1,17 +0,0 @@ -@{ -GUID="CA046F10-CA64-4740-8FF9-2565DBA61A4F" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.0.0.0" -PowerShellVersion = '5.1' -CLRVersion="4.0" -AliasesToExport = @() -FunctionsToExport = @() -CmdletsToExport="Get-WinEvent", "Get-Counter", "Import-Counter", "Export-Counter", "New-WinEvent" -NestedModules="Microsoft.PowerShell.Commands.Diagnostics.dll" -TypesToProcess="..\..\GetEvent.types.ps1xml" -FormatsToProcess="..\..\Event.format.ps1xml","..\..\Diagnostics.format.ps1xml" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390783' -CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Host/Microsoft.PowerShell.Host.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Host/Microsoft.PowerShell.Host.psd1 deleted file mode 100644 index 8ad693d..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Host/Microsoft.PowerShell.Host.psd1 +++ /dev/null @@ -1,14 +0,0 @@ -@{ -GUID="56D66100-99A0-4FFC-A12D-EEE9A6718AEF" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.0.0.0" -PowerShellVersion="3.0" -CLRVersion="4.0" -AliasesToExport = @() -FunctionsToExport = @() -CmdletsToExport="Start-Transcript", "Stop-Transcript" -NestedModules="Microsoft.PowerShell.ConsoleHost.dll" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390784' -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/LocalAccounts.format.ps1xml b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/LocalAccounts.format.ps1xml deleted file mode 100644 index 91b3b35..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/LocalAccounts.format.ps1xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - Microsoft.PowerShell.Commands.LocalUser - - Microsoft.PowerShell.Commands.LocalUser - - - - - - - - - - - - - - - Name - - - Enabled - - - Description - - - - - - - - Microsoft.PowerShell.Commands.LocalGroup - - Microsoft.PowerShell.Commands.LocalGroup - - - - - - - - - - - - - Name - - - Description - - - - - - - - Microsoft.PowerShell.Commands.LocalPrincipal - - Microsoft.PowerShell.Commands.LocalPrincipal - - - - - - - - - - - - - - - ObjectClass - - - Name - - - PrincipalSource - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.dll b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.dll deleted file mode 100644 index 22fd5123973f0656900286a992a98b7e4806d156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90624 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 Bpv?dP diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.psd1 deleted file mode 100644 index 4c5f249..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/Microsoft.PowerShell.LocalAccounts.psd1 +++ /dev/null @@ -1,32 +0,0 @@ -@{ -RootModule = 'Microsoft.Powershell.LocalAccounts' -ModuleVersion = '1.0.0.0' -GUID = '8e362604-2c0b-448f-a414-a6a690a644e2' -Author = 'Microsoft Corporation' -CompanyName = 'Microsoft Corporation' -Copyright = '© Microsoft Corporation. All rights reserved.' -Description = 'Provides cmdlets to work with local users and local groups' -PowerShellVersion = '5.1' -CLRVersion = '4.0' -FormatsToProcess = @('LocalAccounts.format.ps1xml') -CmdletsToExport = @( - 'Add-LocalGroupMember', - 'Disable-LocalUser', - 'Enable-LocalUser', - 'Get-LocalGroup', - 'Get-LocalGroupMember', - 'Get-LocalUser', - 'New-LocalGroup', - 'New-LocalUser', - 'Remove-LocalGroup', - 'Remove-LocalGroupMember', - 'Remove-LocalUser', - 'Rename-LocalGroup', - 'Rename-LocalUser', - 'Set-LocalGroup', - 'Set-LocalUser' - ) -AliasesToExport= @( "algm", "dlu", "elu", "glg", "glgm", "glu", "nlg", "nlu", "rlg", "rlgm", "rlu", "rnlg", "rnlu", "slg", "slu") -HelpInfoURI = 'https://go.microsoft.com/fwlink/?LinkId=717973' -CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/ko/Microsoft.PowerShell.LocalAccounts.Resources.dll b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.LocalAccounts/1.0.0.0/ko/Microsoft.PowerShell.LocalAccounts.Resources.dll deleted file mode 100644 index 203512c0fe35743949ec24454a9ddd4972752631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 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 diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Management/Microsoft.PowerShell.Management.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Management/Microsoft.PowerShell.Management.psd1 deleted file mode 100644 index 0b09587..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Management/Microsoft.PowerShell.Management.psd1 +++ /dev/null @@ -1,103 +0,0 @@ -@{ -GUID="EEFCB906-B326-4E99-9F54-8B4BB6EF3C6D" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.1.0.0" -PowerShellVersion="5.1" -CLRVersion="4.0" -NestedModules="Microsoft.PowerShell.Commands.Management.dll" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390785' -AliasesToExport = @("gcb", "scb", "gin", "gtz", "stz") -FunctionsToExport = @() -CmdletsToExport=@("Add-Content", - "Clear-Content", - "Clear-ItemProperty", - "Join-Path", - "Convert-Path", - "Copy-ItemProperty", - "Get-EventLog", - "Clear-EventLog", - "Write-EventLog", - "Limit-EventLog", - "Show-EventLog", - "New-EventLog", - "Remove-EventLog", - "Get-ChildItem", - "Get-Content", - "Get-ItemProperty", - "Get-ItemPropertyValue", - "Get-WmiObject", - "Invoke-WmiMethod", - "Move-ItemProperty", - "Get-Location", - "Set-Location", - "Push-Location", - "Pop-Location", - "New-PSDrive", - "Remove-PSDrive", - "Get-PSDrive", - "Get-Item", - "New-Item", - "Set-Item", - "Remove-Item", - "Move-Item", - "Rename-Item", - "Copy-Item", - "Clear-Item", - "Invoke-Item", - "Get-PSProvider", - "New-ItemProperty", - "Split-Path", - "Test-Path", - "Get-Process", - "Stop-Process", - "Wait-Process", - "Debug-Process", - "Start-Process", - "Remove-ItemProperty", - "Remove-WmiObject", - "Rename-ItemProperty", - "Register-WmiEvent", - "Resolve-Path", - "Get-Service", - "Stop-Service", - "Start-Service", - "Suspend-Service", - "Resume-Service", - "Restart-Service", - "Set-Service", - "New-Service", - "Set-Content", - "Set-ItemProperty", - "Set-WmiInstance", - "Get-Transaction", - "Start-Transaction", - "Complete-Transaction", - "Undo-Transaction", - "Use-Transaction", - "New-WebServiceProxy", - "Get-HotFix", - "Test-Connection", - "Enable-ComputerRestore", - "Disable-ComputerRestore", - "Checkpoint-Computer", - "Get-ComputerRestorePoint", - "Restart-Computer", - "Stop-Computer", - "Restore-Computer", - "Add-Computer", - "Remove-Computer", - "Test-ComputerSecureChannel", - "Reset-ComputerMachinePassword", - "Rename-Computer", - "Get-ControlPanelItem", - "Show-ControlPanelItem", - "Clear-Recyclebin", - "Get-Clipboard", - "Set-Clipboard", - "Get-ComputerInfo", - "Get-TimeZone", - "Set-TimeZone") -CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataAdapter.ps1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataAdapter.ps1 deleted file mode 100644 index 00b21e6989e7be7afcb790dc59e675d292f56c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171100 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

{O*j7rBu9zE++OA9@6PqUsgHN<9bKAn#gDp{l>7 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

Ce^jTT;@MEEwd(K-^5?lJYG>I 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 diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psd1 deleted file mode 100644 index 842177f84271d5262ca054202d901163bafe0552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5438 zcmc&&Yi|=r6uqC3`X5%x2M38bahtk;gi1sbh{Q{V(th=8(-nSoy{Ur`e;ss%z!7C5491g zBBU+)z)9VPc;iv6@Kiv%M6Ve})UDQ5JUz^vV^nP6M;L!y>$RcV5}I{NJ37tZsRfrn zNZTd&zrd)0zNJ0W3Tkf|LmVQl$}-#?`17E$>KXi-V5Md0w*o8inQ`g?+2K9A9oga&R$1AM+_Df-?9&9#G}{wF_9-KZ=qMljd>$pnPaB#BD0OQF$Djr zeMaTeRd`|rA&|PNBQA4wb{fMo5fZ=;}T@jOF5CZ zh@MkKjq%9}cFg7d))94#`32;Taji?eIeo}OjQb(ho8r$Z-~?JQD=zSRUgiZW6It2V zau9SqqdZc7 zje%vLRf7Kemd@0suRREP_cm}hBWgw;_rtEgr3Smmcy^K=0ptUNdEG3!X_vk?Ch>@-LH3-f55*WRLLFI10aoiE|fNvSzIR*TozcPnKT zvw@G}&0@{1|2>#bHNLqEV+Q>{xI+xzgT0zd^&GW57562!yR>~Cx!UbO8BK8q5q@PS zN{@0!M%&nYi_RYARd-wa(cY^bIc^`o>O{_>ys8$>Iduw_n<-mc$7X!MC>qNpFdE;{ zgN#&mc+8&Wy-r;gk)A|y9Ew)-elOTtp8(HDSEfCRGDj|v1FZ_1JprB(BA*rcI=Evw z&6r!2-uxXRn=IZ}CUrczo!#oPHp9SO1rcx$aUK0*Ih(EhTw{Q_ZBfpO$C?*LIWci( zI7HWFT??y7^SOi192d)B{QA{g{KR$5e~;0Gyt6%$Q|QVl^Q$zYAe(2XAGX6x5SzT~ zL+1ikGFz};a?h>~g*Lk_W{9!5b1b*Vj`u*%pz8#lJ462Q)GWanMh{QU*XtReI@8Ug zy;|Un0)MR24{-*zk1l79x;=%>s^@Rk`|e})6_Ahz-edgl>H*%L!M2ZZl6HX8lLva9 z5^KO6EKgc^8ps%B=fXD`xXADLU5CxidZc~{InOxxD&A{D-m7xgOYif%#&;NeT91SM qC3R!BcLqB+w%v=kJHaUsz31@zej?VArxe^Tm^R^zx|cs`SNI>G9)&9a diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psm1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtils.psm1 deleted file mode 100644 index 27fa9fbaf8a1e5019c82072488f4b26381e6cb5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20364 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 diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtilsHelper.ps1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/Microsoft.PowerShell.ODataUtilsHelper.ps1 deleted file mode 100644 index 9a258a317136912d008b701c5a633c7707c23cdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51630 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' - $newFunction.Returntype = $innerXML.Params.ReturnType.Type - } - catch - { - # Do nothing - } - } - - # Keep only EntityType name - $newFunction.ReturnType = $newFunction.ReturnType.Replace('Collection(', '') - $newFunction.ReturnType = $newFunction.ReturnType.Replace(')', '') - - # Actions are always SideEffecting, otherwise it's an OData function - foreach ($parameter in $function.Parameter) - { - if ($parameter.Nullable -ne $null) - { - $parameterIsNullable = [System.Convert]::ToBoolean($parameter.Nullable); - } - - $newParameter = [ODataUtils.Parameter] @{ - "Name" = $parameter.Name; - "Type" = $parameter.Type; - "Nullable" = $parameterIsNullable; - } - - $newFunction.Parameters += $newParameter - } - - $Metadata.Functions += $newFunction - } - } -} - -######################################################### -# Processes plain text xml metadata (OData V4 schema version) into our custom structure -# MetadataSet contains all parsed so far referenced Metadatas (for base class lookup) -######################################################### -function ParseMetadata -{ - param - ( - [xml] $MetadataXML, - [string] $ODataVersion, - [string] $MetadataUri, - [string] $Uri, - [System.Collections.ArrayList] $MetadataSet - ) - - if($MetadataXML -eq $null) { throw ($LocalizedData.ArguementNullError -f "MetadataXML", "ParseMetadata") } - - # This is a processing queue for those types that require base types that haven't been defined yet - $entityAndComplexTypesQueue = @{} - [System.Collections.ArrayList] $metadatas = [System.Collections.ArrayList]::new() - - foreach ($schema in $MetadataXML.Edmx.DataServices.Schema) - { - if ($schema -eq $null) - { - Write-Error $LocalizedData.EmptySchema - continue - } - - [ODataUtils.MetadataV4] $metadata = [ODataUtils.MetadataV4]::new() - $metadata.ODataVersion = $ODataVersion - $metadata.MetadataUri = $MetadataUri - $metadata.Uri = $Uri - $metadata.Namespace = $schema.Namespace - $metadata.Alias = $schema.Alias - - ParseEntityTypes -SchemaXML $schema -metadata $metadata -GlobalMetadata $MetadataSet -EntityAndComplexTypesQueue $entityAndComplexTypesQueue -CustomNamespace $CustomNamespace -Alias $metadata.Alias - ParseComplexTypes -SchemaXML $schema -metadata $metadata -GlobalMetadata $MetadataSet -EntityAndComplexTypesQueue $entityAndComplexTypesQueue -CustomNamespace $CustomNamespace -Alias $metadata.Alias - ParseTypeDefinitions -SchemaXML $schema -metadata $metadata -GlobalMetadata $MetadataSet -CustomNamespace $CustomNamespace -Alias $metadata.Alias - ParseEnumTypes -SchemaXML $schema -metadata $metadata - - foreach ($entityContainer in $schema.EntityContainer) - { - if ($entityContainer.IsDefaultEntityContainer) - { - $metadata.DefaultEntityContainerName = $entityContainer.Name - } - - ParseSingletonTypes -SchemaEntityContainerXML $entityContainer -Metadata $metadata - ParseEntitySets -SchemaEntityContainerXML $entityContainer -Metadata $metadata -Namespace $schema.Namespace -Alias $schema.Alias - } - - if ($schema.Action) - { - ParseActions -SchemaActionsXML $schema.Action -Metadata $metadata - } - - if ($schema.Function) - { - ParseFunctions -SchemaFunctionsXML $schema.Function -Metadata $metadata - } - - # In this call we check if the Namespace or Alias have to be normalized because it has invalid combination of dots and numbers. - # Note: In ParseEntityTypes and ParseComplexTypes we check for scenario where namespace/alias collide with inheriting class name. - NormalizeNamespace $metadata.Namespace $metadata.Uri $script:normalizedNamespaces $false - NormalizeNamespace $metadata.Alias $metadata.Uri $script:normalizedNamespaces $false - - $metadatas.Add($metadata) | Out-Null - } - - $metadatas -} - -######################################################### -# Verifies processed metadata for correctness -######################################################### -function VerifyMetadata -{ - param - ( - [System.Collections.ArrayList] $metadataSet, - [boolean] $allowClobber, - $callerPSCmdlet, - [string] $progressBarStatus - ) - - if($callerPSCmdlet -eq $null) { throw ($LocalizedData.ArguementNullError -f "PSCmdlet", "VerifyMetaData") } - if($progressBarStatus -eq $null) { throw ($LocalizedData.ArguementNullError -f "ProgressBarStatus", "VerifyMetaData") } - - Write-Verbose $LocalizedData.VerboseVerifyingMetadata - - $reservedProperties = @("Filter", "OrderBy", "Skip", "Top", "ConnectionUri", "CertificateThumbPrint", "Credential") - $validEntitySets = @() - $sessionCommands = Get-Command -All - - - foreach ($metadata in $metadataSet) - { - foreach ($entitySet in $metadata.EntitySets) - { - if ($entitySet.Type -eq $null) - { - $errorMessage = ($LocalizedData.EntitySetUndefinedType -f $metadata.MetadataUri, $entitySet.Name) - $exception = [System.InvalidOperationException]::new($errorMessage) - $errorRecord = CreateErrorRecordHelper "ODataEndpointProxyInvalidMetaDataUri" $null ([System.Management.Automation.ErrorCategory]::InvalidArgument) $exception $metadata.MetadataUri - $callerPSCmdlet.ThrowTerminatingError($errorRecord) - } - - $hasConflictingProperty = $false - $hasConflictingCommand = $false - $entityAndNavigationProperties = $entitySet.Type.EntityProperties + $entitySet.Type.NavigationProperties - foreach($entityProperty in $entityAndNavigationProperties) - { - if($reservedProperties.Contains($entityProperty.Name)) - { - $hasConflictingProperty = $true - if(!$allowClobber) - { - # Write Error message and skip current Entity Set. - $errorMessage = ($LocalizedData.SkipEntitySetProxyCreation -f $entitySet.Name, $entitySet.Type.Name, $entityProperty.Name) - $exception = [System.InvalidOperationException]::new($errorMessage) - $errorRecord = CreateErrorRecordHelper "ODataEndpointDefaultPropertyCollision" $null ([System.Management.Automation.ErrorCategory]::InvalidOperation) $exception $metadata.MetadataUri - $callerPSCmdlet.WriteError($errorRecord) - } - else - { - $warningMessage = ($LocalizedData.EntitySetProxyCreationWithWarning -f $entitySet.Name, $entityProperty.Name, $entitySet.Type.Name) - $callerPSCmdlet.WriteWarning($warningMessage) - } - } - } - - foreach($currentCommand in $sessionCommands) - { - if(($null -ne $currentCommand.Noun -and $currentCommand.Noun -eq $entitySet.Name) -and - ($currentCommand.Verb -eq "Get" -or - $currentCommand.Verb -eq "Set" -or - $currentCommand.Verb -eq "New" -or - $currentCommand.Verb -eq "Remove")) - { - $hasConflictingCommand = $true - VerifyMetadataHelper $LocalizedData.SkipEntitySetConflictCommandCreation ` - $LocalizedData.EntitySetConflictCommandCreationWithWarning ` - $entitySet.Name $currentCommand.Name $metadata.MetadataUri $allowClobber $callerPSCmdlet - } - } - - foreach($currentAction in $metadata.Actions) - { - $actionCommand = "Invoke-" + "$($entitySet.Name)$($currentAction.Verb)" - - foreach($currentCommand in $sessionCommands) - { - if($actionCommand -eq $currentCommand.Name) - { - $hasConflictingCommand = $true - VerifyMetadataHelper $LocalizedData.SkipEntitySetConflictCommandCreation ` - $LocalizedData.EntitySetConflictCommandCreationWithWarning $entitySet.Name ` - $currentCommand.Name $metadata.MetadataUri $allowClobber $callerPSCmdlet - } - } - } - - if(!($hasConflictingProperty -or $hasConflictingCommand)-or $allowClobber) - { - $validEntitySets += $entitySet - } - } - - $metadata.EntitySets = $validEntitySets - - $validServiceActions = @() - $hasConflictingServiceActionCommand - foreach($currentAction in $metadata.Actions) - { - $serviceActionCommand = "Invoke-" + "$($currentAction.Verb)" - - foreach($currentCommand in $sessionCommands) - { - if($serviceActionCommand -eq $currentCommand.Name) - { - $hasConflictingServiceActionCommand = $true - VerifyMetadataHelper $LocalizedData.SkipConflictServiceActionCommandCreation ` - $LocalizedData.ConflictServiceActionCommandCreationWithWarning $entitySet.Name ` - $currentCommand.Name $metadata.MetadataUri $allowClobber $callerPSCmdlet - } - } - - if(!$hasConflictingServiceActionCommand -or $allowClobber) - { - $validServiceActions += $currentAction - } - } - - $metadata.Actions = $validServiceActions - } - - # Update Progress bar. - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 5 20 1 1 -} - -######################################################### -# Takes xml definition of a class from metadata document, -# plus existing metadata structure and finds its base class -######################################################### -function GetBaseType -{ - param - ( - [System.Xml.XmlElement] $MetadataEntityDefinition, - [ODataUtils.MetadataV4] $Metadata, - [string] $Namespace, - [System.Collections.ArrayList] $GlobalMetadata - ) - - if ($metadataEntityDefinition -ne $null -and - $metaData -ne $null -and - $MetadataEntityDefinition.BaseType -ne $null) - { - $baseType = $Metadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $MetadataEntityDefinition.BaseType -or $_.Alias + "." + $_.Name -eq $MetadataEntityDefinition.BaseType } - if ($baseType -eq $null) - { - $baseType = $Metadata.ComplexTypes | Where { $_.Namespace + "." + $_.Name -eq $MetadataEntityDefinition.BaseType -or $_.Alias + "." + $_.Name -eq $MetadataEntityDefinition.BaseType } - } - - if ($baseType -eq $null) - { - # Look in other metadatas, since the class can be defined in referenced metadata - foreach ($referencedMetadata in $GlobalMetadata) - { - if (($baseType = $referencedMetadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $MetadataEntityDefinition.BaseType -or $_.Alias + "." + $_.Name -eq $MetadataEntityDefinition.BaseType }) -ne $null -or - ($baseType = $referencedMetadata.ComplexTypes | Where { $_.Namespace + "." + $_.Name -eq $MetadataEntityDefinition.BaseType -or $_.Alias + "." + $_.Name -eq $MetadataEntityDefinition.BaseType }) -ne $null) - { - # Found base class - break - } - } - } - } - - if ($baseType -ne $null) - { - $baseType[0] - } -} - -######################################################### -# Takes base class name and global metadata structure -# and finds its base class -######################################################### -function GetBaseTypeByName -{ - param - ( - [String] $BaseTypeStr, - [System.Collections.ArrayList] $GlobalMetadata - ) - - if ($BaseTypeStr -ne $null) - { - - # Look for base class definition in all referenced metadatas (including entry point) - foreach ($referencedMetadata in $GlobalMetadata) - { - if (($baseType = $referencedMetadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $BaseTypeStr -or $_.Alias + "." + $_.Name -eq $BaseTypeStr }) -ne $null -or - ($baseType = $referencedMetadata.ComplexTypes | Where { $_.Namespace + "." + $_.Name -eq $BaseTypeStr -or $_.Alias + "." + $_.Name -eq $BaseTypeStr }) -ne $null) - { - # Found base class - break - } - } - } - - if ($baseType -ne $null) - { - $baseType[0] - } - else - { - $null - } -} - -######################################################### -# Processes derived types of a newly added type, -# that were previously waiting in the queue -######################################################### -function AddDerivedTypes { - param( - [ODataUtils.EntityTypeV4] $baseType, - $entityAndComplexTypesQueue, - [ODataUtils.MetadataV4] $metadata, - [string] $namespace - ) - - if($baseType -eq $null) { throw ($LocalizedData.ArguementNullError -f "BaseType", "AddDerivedTypes") } - if($entityAndComplexTypesQueue -eq $null) { throw ($LocalizedData.ArguementNullError -f "EntityAndComplexTypesQueue", "AddDerivedTypes") } - if($namespace -eq $null) { throw ($LocalizedData.ArguementNullError -f "Namespace", "AddDerivedTypes") } - - $baseTypeFullName = $baseType.Namespace + '.' + $baseType.Name - $baseTypeShortName = $baseType.Alias + '.' + $baseType.Name - - if ($entityAndComplexTypesQueue.ContainsKey($baseTypeFullName) -or $entityAndComplexTypesQueue.ContainsKey($baseTypeShortName)) - { - $types = $entityAndComplexTypesQueue[$baseTypeFullName] + $entityAndComplexTypesQueue[$baseTypeShortName] - - foreach ($type in $types) - { - if ($type.type -eq 'EntityType') - { - $newType = ParseMetadataTypeDefinition ($type.value) $baseType $metadata $namespace $true - $metadata.EntityTypes += $newType - } - else - { - $newType = ParseMetadataTypeDefinition ($type.value) $baseType $metadata $namespace $false - $metadata.ComplexTypes += $newType - } - - AddDerivedTypes $newType $entityAndComplexTypesQueue $metadata $namespace - } - } -} - -######################################################### -# Parses types definitions element of metadata xml -######################################################### -function ParseMetadataTypeDefinitionHelper -{ - param - ( - [System.Xml.XmlElement] $metadataEntityDefinition, - [ODataUtils.EntityTypeV4] $baseType, - [string] $baseTypeStr, - [ODataUtils.MetadataV4] $metadata, - [string] $namespace, - [AllowEmptyString()] - [string] $alias, - [bool] $isEntity - ) - - if($metadataEntityDefinition -eq $null) { throw ($LocalizedData.ArguementNullError -f "MetadataEntityDefinition", "ParseMetadataTypeDefinition") } - if($namespace -eq $null) { throw ($LocalizedData.ArguementNullError -f "Namespace", "ParseMetadataTypeDefinition") } - - [ODataUtils.EntityTypeV4] $newEntityType = CreateNewEntityType -metadataEntityDefinition $metadataEntityDefinition -baseType $baseType -baseTypeStr $baseTypeStr -namespace $namespace -alias $alias -isEntity $isEntity - - if ($baseType -ne $null) - { - # Add properties inherited from BaseType - ParseMetadataBaseTypeDefinitionHelper $newEntityType $baseType - } - - # properties defined on EntityType - $newEntityType.EntityProperties += $metadataEntityDefinition.Property | % { - if ($_ -ne $null) - { - if ($_.Nullable -ne $null) - { - $newPropertyIsNullable = [System.Convert]::ToBoolean($_.Nullable) - } - else - { - $newPropertyIsNullable = $true - } - - [ODataUtils.TypeProperty] @{ - "Name" = $_.Name; - "TypeName" = $_.Type; - "IsNullable" = $newPropertyIsNullable; - } - } - } - - # odataId property will be inherited from base type, if it exists. - # Otherwise, it should be added to current type - if ($baseType -eq $null) - { - # @odata.Id property (renamed to odataId) is required for dynamic Uri creation - # This property is only available when user executes auto-generated cmdlet with -AllowAdditionalData, - # but ODataAdapter needs it to construct Uri to access navigation properties. - # Thus, we need to fetch this info for scenario when -AllowAdditionalData isn't used. - $newEntityType.EntityProperties += [ODataUtils.TypeProperty] @{ - "Name" = "odataId"; - "TypeName" = "Edm.String"; - "IsNullable" = $True; - } - } - - # Property name can't be identical to entity type name. - # If such property exists, "Property" suffix will be added to its name. - foreach ($property in $newEntityType.EntityProperties) - { - if ($property.Name -eq $newEntityType.Name) - { - $property.Name += "Property" - } - } - - if ($metadataEntityDefinition -ne $null -and $metadataEntityDefinition.Key -ne $null) - { - foreach ($entityTypeKey in $metadataEntityDefinition.Key.PropertyRef) - { - ($newEntityType.EntityProperties | Where-Object { $_.Name -eq $entityTypeKey.Name }).IsKey = $true - } - } - - $newEntityType -} - -######################################################### -# Add base class entity and navigation properties to inheriting class -######################################################### -function ParseMetadataBaseTypeDefinitionHelper -{ - param - ( - [ODataUtils.EntityTypeV4] $EntityType, - [ODataUtils.EntityTypeV4] $BaseType - ) - - if ($EntityType -ne $null -and $BaseType -ne $null) - { - # Add properties inherited from BaseType - $EntityType.EntityProperties += $BaseType.EntityProperties - $EntityType.NavigationProperties += $BaseType.NavigationProperties - } -} - -######################################################### -# Create new EntityType object -######################################################### -function CreateNewEntityType -{ - param - ( - [System.Xml.XmlElement] $metadataEntityDefinition, - [ODataUtils.EntityTypeV4] $baseType, - [string] $baseTypeStr, - [string] $namespace, - [AllowEmptyString()] - [string] $alias, - [bool] $isEntity - ) - $newEntityType = [ODataUtils.EntityTypeV4] @{ - "Namespace" = $namespace; - "Alias" = $alias; - "Name" = $metadataEntityDefinition.Name; - "IsEntity" = $isEntity; - "BaseType" = $baseType; - "BaseTypeStr" = $baseTypeStr; - } - - $newEntityType -} - -######################################################### -# Parses navigation properties from metadata xml -######################################################### -function ParseMetadataTypeDefinitionNavigationProperties -{ - param - ( - [System.Xml.XmlElement] $metadataEntityDefinition, - [ODataUtils.EntityTypeV4] $entityType - ) - - # navigation properties defined on EntityType - $newEntityType.NavigationProperties = @{} - $newEntityType.NavigationProperties.Clear() - - foreach ($navigationProperty in $metadataEntityDefinition.NavigationProperty) - { - $tmp = [ODataUtils.NavigationPropertyV4] @{ - "Name" = $navigationProperty.Name; - "Type" = $navigationProperty.Type; - "Nullable" = $navigationProperty.Nullable; - "Partner" = $navigationProperty.Partner; - "ContainsTarget" = $navigationProperty.ContainsTarget; - "OnDelete" = $navigationProperty.OnDelete; - } - - $referentialConstraints = @{} - foreach ($constraint in $navigationProperty.ReferentialConstraints) - { - $tmp = [ODataUtils.ReferencedConstraint] @{ - "Property" = $constraint.Property; - "ReferencedProperty" = $constraint.ReferencedProperty; - } - } - - $newEntityType.NavigationProperties += $tmp - } -} - -######################################################### -# Parses types definitions element of metadata xml for OData V4 schema -######################################################### -function ParseMetadataTypeDefinition -{ - param - ( - [System.Xml.XmlElement] $metadataEntityDefinition, - [ODataUtils.EntityTypeV4] $baseType, - [ODataUtils.MetadataV4] $metadata, - [string] $namespace, - [AllowEmptyString()] - [string] $alias, - [bool] $isEntity, - [string] $baseTypeStr - ) - - if($metadataEntityDefinition -eq $null) { throw ($LocalizedData.ArguementNullError -f "MetadataEntityDefinition", "ParseMetadataTypeDefinition") } - if($namespace -eq $null) { throw ($LocalizedData.ArguementNullError -f "Namespace", "ParseMetadataTypeDefinition") } - - [ODataUtils.EntityTypeV4] $newEntityType = ParseMetadataTypeDefinitionHelper -metadataEntityDefinition $metadataEntityDefinition -baseType $baseType -baseTypeStr $baseTypeStr -metadata $metadata -namespace $namespace -alias $alias -isEntity $isEntity - ParseMetadataTypeDefinitionNavigationProperties -metadataEntityDefinition $metadataEntityDefinition -entityType $newEntityType - - $newEntityType -} - -######################################################### -# Create psd1 and cdxml files required to auto-generate -# cmdlets for given service. -######################################################### -function GenerateClientSideProxyModule -{ - param - ( - [System.Collections.ArrayList] $GlobalMetadata, - [ODataUtils.ODataEndpointProxyParameters] $ODataEndpointProxyParameters, - [string] $OutputModule, - [string] $CreateRequestMethod, - [string] $UpdateRequestMethod, - [string] $CmdletAdapter, - [Hashtable] $resourceNameMappings, - [Hashtable] $CustomData, - [string] $UriResourcePathKeyFormat, - [string] $progressBarStatus, - $NormalizedNamespaces - ) - - if($progressBarStatus -eq $null) { throw ($LocalizedData.ArguementNullError -f "ProgressBarStatus", "GenerateClientSideProxyModule") } - - Write-Verbose ($LocalizedData.VerboseSavingModule -f $OutputModule) - - # Save ComplexTypes for all metadata schemas in single file - $typeDefinationFileName = "ComplexTypeDefinitions.psm1" - $complexTypeMapping = GenerateComplexTypeDefinition $GlobalMetadata $OutputModule $typeDefinationFileName $NormalizedNamespaces - - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 20 20 1 1 - - $actions = @() - $functions = @() - - $currentEntryCount = 0 - foreach ($Metadata in $GlobalMetadata) - { - foreach ($entitySet in $Metadata.EntitySets) - { - $currentEntryCount += 1 - SaveCDXML $entitySet $Metadata $GlobalMetadata $Metadata.Uri $OutputModule $CreateRequestMethod $UpdateRequestMethod $CmdletAdapter $resourceNameMappings $CustomData $complexTypeMapping $UriResourcePathKeyFormat $NormalizedNamespaces - - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 40 20 $Metadata.EntitySets.Count $currentEntryCount - } - - $currentEntryCount = 0 - foreach ($singleton in $Metadata.SingletonTypes) - { - $currentEntryCount += 1 - SaveCDXMLSingletonCmdlets $singleton $Metadata $GlobalMetadata $Metadata.Uri $OutputModule $CreateRequestMethod $UpdateRequestMethod $CmdletAdapter $resourceNameMappings $CustomData $complexTypeMapping $NormalizedNamespaces - - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 40 20 $Metadata.Singletons.Count $currentEntryCount - } - - $actions += $Metadata.Actions | Where-Object { $_.EntitySet -eq '' -or $_.EntitySet -eq $null } - $functions += $Metadata.Functions | Where-Object { $_.EntitySet -eq '' -or $_.EntitySet -eq $null } - } - - if ($actions.Count -gt 0 -or $functions.Count -gt 0) - { - # Save Service Actions for all metadata schemas in single file - SaveServiceActionsCDXML $GlobalMetadata $ODataEndpointProxyParameters "$OutputModule\ServiceActions.cdxml" $complexTypeMapping $progressBarStatus $CmdletAdapter - } - - $moduleDirInfo = [System.IO.DirectoryInfo]::new($OutputModule) - $moduleManifestName = $moduleDirInfo.Name + ".psd1" - - if ($actions.Count -gt 0 -or $functions.Count -gt 0) - { - $additionalModules = @($typeDefinationFileName, 'ServiceActions.cdxml') - } - else - { - $additionalModules = @($typeDefinationFileName) - } - - GenerateModuleManifest $GlobalMetadata $OutputModule\$moduleManifestName $additionalModules $resourceNameMappings $progressBarStatus -} - -######################################################### -# Generates CDXML module for a specific OData EntitySet -######################################################### -function SaveCDXML -{ - param - ( - [ODataUtils.EntitySetV4] $EntitySet, - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - [string] $Uri, - [string] $OutputModule, - [string] $CreateRequestMethod, - [string] $UpdateRequestMethod, - [string] $CmdletAdapter, - [Hashtable] $resourceNameMappings, - [Hashtable] $CustomData, - [Hashtable] $compexTypeMapping, - [string] $UriResourcePathKeyFormat, - $normalizedNamespaces - ) - - if($EntitySet -eq $null) { throw ($LocalizedData.ArguementNullError -f "EntitySet", "GenerateClientSideProxyModule") } - if($Metadata -eq $null) { throw ($LocalizedData.ArguementNullError -f "metadata", "GenerateClientSideProxyModule") } - - $entitySetName = $EntitySet.Name - if(($null -ne $resourceNameMappings) -and - $resourceNameMappings.ContainsKey($entitySetName)) - { - $entitySetName = $resourceNameMappings[$entitySetName] - } - else - { - $entitySetName = $EntitySet.Type.Name - } - - $Path = "$OutputModule\$entitySetName.cdxml" - - $xmlWriter = New-Object System.XMl.XmlTextWriter($Path,$Null) - - if ($xmlWriter -eq $null) - { - throw ($LocalizedData.XmlWriterInitializationError -f $EntitySet.Name) - } - - $xmlWriter = SaveCDXMLHeader $xmlWriter $Uri $EntitySet.Name $entitySetName $CmdletAdapter - - # Get the keys - $keys = $EntitySet.Type.EntityProperties | Where-Object { $_.IsKey } - - $navigationProperties = $EntitySet.Type.NavigationProperties - - SaveCDXMLInstanceCmdlets $xmlWriter $Metadata $GlobalMetadata $EntitySet.Type $keys $navigationProperties $CmdletAdapter $compexTypeMapping $false - - $nonKeyProperties = $EntitySet.Type.EntityProperties | ? { -not $_.isKey } - $nullableProperties = $nonKeyProperties | ? { $_.isNullable } - $nonNullableProperties = $nonKeyProperties | ? { -not $_.isNullable } - - $xmlWriter.WriteStartElement('StaticCmdlets') - - $keyProperties = $keys - - SaveCDXMLNewCmdlet $xmlWriter $Metadata $GlobalMetadata $keyProperties $nonNullableProperties $nullableProperties $navigationProperties $CmdletAdapter $compexTypeMapping - - GenerateSetProxyCmdlet $xmlWriter $keyProperties $nonKeyProperties $compexTypeMapping - - SaveCDXMLRemoveCmdlet $xmlWriter $Metadata $GlobalMetadata $keyProperties $navigationProperties $CmdletAdapter $compexTypeMapping - - $entityActions = $Metadata.Actions | Where-Object { ($_.EntitySet.Namespace -eq $EntitySet.Namespace) -and ($_.EntitySet.Name -eq $EntitySet.Name) } - - if ($entityActions.Length -gt 0) - { - foreach($action in $entityActions) - { - $xmlWriter = SaveCDXMLAction $xmlWriter $Metadata $action $EntitySet.Name $true $keys $complexTypeMapping - } - } - - $entityFunctions = $Metadata.Functions | Where-Object { ($_.EntitySet.Namespace -eq $EntitySet.Namespace) -and ($_.EntitySet.Name -eq $EntitySet.Name) } - - if ($entityFunctions.Length -gt 0) - { - foreach($function in $entityFunctions) - { - $xmlWriter = SaveCDXMLFunction $xmlWriter $Metadata $function $EntitySet.Name $true $keys $complexTypeMapping - } - } - - $xmlWriter.WriteEndElement() - - $normalizedDotNetNamespace = GetNamespace $EntitySet.Type.Namespace $normalizedNamespaces - $normalizedDotNetAlias = GetNamespace $EntitySet.Alias $normalizedNamespaces - $normalizedDotNetEntitySetNamespace = $normalizedDotNetNamespace - - $xmlWriter.WriteStartElement('CmdletAdapterPrivateData') - - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'EntityTypeName') - $xmlWriter.WriteString("$($normalizedDotNetNamespace).$($EntitySet.Type.Name)") - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'EntityTypeAliasName') - if (!$EntitySet.Alias) - { - $xmlWriter.WriteString("") - } - else - { - $xmlWriter.WriteString("$($normalizedDotNetAlias).$($EntitySet.Type.Name)") - } - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'EntitySetName') - $xmlWriter.WriteString("$($normalizedDotNetEntitySetNamespace).$($EntitySet.Name)") - $xmlWriter.WriteEndElement() - - # Add URI resource path format (webservice.svc/ResourceName/ResourceId vs webservice.svc/ResourceName(QueryKeyName=ResourceId)) - if ($UriResourcePathKeyFormat -ne $null -and $UriResourcePathKeyFormat -ne '') - { - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'UriResourcePathKeyFormat') - $xmlWriter.WriteString("$UriResourcePathKeyFormat") - $xmlWriter.WriteEndElement() - } - - # Add information about navigation properties and their types - # Used in scenario where user requests navigation property in -Select query - foreach ($navProperty in $navigationProperties) - { - if ($navProperty) - { - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', $navProperty.Name + 'NavigationProperty') - $xmlWriter.WriteString($navProperty.Type) - $xmlWriter.WriteEndElement() - } - } - - # Add CreateRequestMethod and UpdateRequestMethod to privateData - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'CreateRequestMethod') - $xmlWriter.WriteString("$CreateRequestMethod") - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'UpdateRequestMethod') - $xmlWriter.WriteString("$UpdateRequestMethod") - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteEndElement() - - SaveCDXMLFooter $xmlWriter - - Write-Verbose ($LocalizedData.VerboseSavedCDXML -f $($entitySetName), $Path) -} - -######################################################### -# Save Singleton Cmdlets to CDXML -######################################################### -function SaveCDXMLSingletonCmdlets -{ - param - ( - [ODataUtils.SingletonType] $Singleton, - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - [string] $Uri, - [string] $OutputModule, - [string] $CreateRequestMethod, - [string] $UpdateRequestMethod, - [string] $CmdletAdapter, - [Hashtable] $resourceNameMappings, - [Hashtable] $CustomData, - [Hashtable] $compexTypeMapping, - $normalizedNamespaces - ) - - if($Singleton -eq $null) { throw ($LocalizedData.ArguementNullError -f "Singleton", "SaveCDXMLSingletonCmdlets") } - if($Metadata -eq $null) { throw ($LocalizedData.ArguementNullError -f "Metadata", "SaveCDXMLSingletonCmdlets") } - - $singletonName = $singleton.Name - $singletonType = $singleton.Type - - $Path = "$OutputModule\$singletonName" + "Singleton" + ".cdxml" - - $xmlWriter = New-Object System.XMl.XmlTextWriter($Path,$Null) - - if ($xmlWriter -eq $null) - { - throw ($LocalizedData.XmlWriterInitializationError -f $singletonName) - } - - # Get associated EntityType - $associatedEntityType = $Metadata.EntityTypes | Where-Object { $_.Namespace + "." + $_.Name -eq $singletonType -or $_.Alias + "." + $_.Name -eq $singletonType} - - if ($associatedEntityType -eq $null) - { - # Look in other metadatas, since the class can be defined in referenced metadata - foreach ($referencedMetadata in $GlobalMetadata) - { - if (($associatedEntityType = $referencedMetadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $singletonType -or $_.Alias + "." + $_.Name -eq $singletonType }) -ne $null) - { - # Found associated class - break - } - } - } - - if ($associatedEntityType -ne $null) - { - $xmlWriter = SaveCDXMLHeader $xmlWriter $Uri $singletonName $singletonName $CmdletAdapter - - if ($associatedEntityType.BaseType -eq $null -and $associatedEntityType.BaseTypeStr -ne $null -and $associatedEntityType.BaseTypeStr -ne '') - { - $associatedEntitybaseType = GetBaseTypeByName $associatedEntityType.BaseTypeStr $GlobalMetadata - - # Make another pass on base class to make sure its properties were added to associated entity type - ParseMetadataBaseTypeDefinitionHelper $associatedEntityType $associatedEntitybaseType - } - - # Get the keys depending on whether the url contains variables or not - $keys = $associatedEntityType.EntityProperties | Where-Object { $_.IsKey } - - $navigationProperties = $associatedEntityType.NavigationProperties - - SaveCDXMLInstanceCmdlets $xmlWriter $Metadata $GlobalMetadata $associatedEntityType $keys $navigationProperties $CmdletAdapter $compexTypeMapping $true - - $nonKeyProperties = $associatedEntityType.EntityProperties | ? { -not $_.isKey } - $nullableProperties = $nonKeyProperties | ? { $_.isNullable } - $nonNullableProperties = $nonKeyProperties | ? { -not $_.isNullable } - - $xmlWriter.WriteStartElement('StaticCmdlets') - - $keyProperties = $keys - - GenerateSetProxyCmdlet $xmlWriter $keyProperties $nonKeyProperties $compexTypeMapping - - $entityActions = $Metadata.Actions | Where-Object { $_.EntitySet.Name -eq $associatedEntityType.Name } - - if ($entityActions.Length -gt 0) - { - foreach($action in $entityActions) - { - $xmlWriter = SaveCDXMLAction $xmlWriter $Metadata $action $EntitySet.Name $true $keys $complexTypeMapping - } - } - - $entityFunctions = $Metadata.Functions | Where-Object { $_.EntitySet.Name -eq $associatedEntityType.Name } - - if ($entityFunctions.Length -gt 0) - { - foreach($function in $entityFunctions) - { - $xmlWriter = SaveCDXMLFunction $xmlWriter $Metadata $function $associatedEntityType.Name $true $keys $complexTypeMapping - } - } - - $xmlWriter.WriteEndElement() - - $normalizedDotNetNamespace = GetNamespace $associatedEntityType.Namespace $normalizedNamespaces - $normalizedDotNetAlias = GetNamespace $associatedEntityType.Alias $normalizedNamespaces - - $xmlWriter.WriteStartElement('CmdletAdapterPrivateData') - - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'EntityTypeAliasName') - if (!$associatedEntityType.Alias) - { - $xmlWriter.WriteString("") - } - else - { - $xmlWriter.WriteString("$($normalizedDotNetAlias).$($associatedEntityType.Name)") - } - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'EntityTypeName') - $xmlWriter.WriteString("$($normalizedDotNetNamespace).$($associatedEntityType.Name)") - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'IsSingleton') - $xmlWriter.WriteString("True") - $xmlWriter.WriteEndElement() - - # Add information about navigation properties and their types - # Used in scenario where user requests navigation property in -Select query - foreach ($navProperty in $navigationProperties) - { - if ($navProperty) - { - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', $navProperty.Name + 'NavigationProperty') - $xmlWriter.WriteString($navProperty.Type) - $xmlWriter.WriteEndElement() - } - } - - # Add UpdateRequestMethod to privateData - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'UpdateRequestMethod') - $xmlWriter.WriteString("$UpdateRequestMethod") - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteEndElement() - - SaveCDXMLFooter $xmlWriter - - Write-Verbose ($LocalizedData.VerboseSavedCDXML -f $($associatedEntityType.Name), $Path) - } -} - -######################################################### -# Saves InstanceCmdlets node to CDXML -######################################################### -function SaveCDXMLInstanceCmdlets -{ - param - ( - [System.XMl.XmlTextWriter] $xmlWriter, - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - [ODataUtils.EntityTypeV4] $EntityType, - $keys, - $navigationProperties, - $CmdletAdapter, - [Hashtable] $complexTypeMapping, - [bool] $isSingleton - ) - - if($xmlWriter -eq $null) { throw ($LocalizedData.ArguementNullError -f "xmlWriter", "SaveCDXMLInstanceCmdlets") } - if($Metadata -eq $null) { throw ($LocalizedData.ArguementNullError -f "Metadata", "SaveCDXMLInstanceCmdlets") } - - $xmlWriter.WriteStartElement('InstanceCmdlets') - $xmlWriter.WriteStartElement('GetCmdletParameters') - # adding key parameters and association parameters to QueryableProperties, each in a different parameter set - # to be used by GET cmdlet - if (($keys.Length -gt 0) -or ($navigationProperties.Length -gt 0)) - { - $querableNavProperties = @{} - - if ($isSingleton -eq $false) - { - foreach ($navProperty in $navigationProperties) - { - if ($navProperty -ne $null) - { - $associatedType = GetAssociatedType $Metadata $GlobalMetadata $navProperty - $associatedTypeKeyProperties = $associatedType.EntityProperties | ? { $_.IsKey } - - # Make sure associated parameter (based on navigation property) has EntitySet or Singleton, which makes it accessible from the service root - # Otherwise the Uri for associated navigation property won't be valid - if ($associatedTypeKeyProperties.Length -gt 0 -and (ShouldBeAssociatedParameter $GlobalMetadata $EntityType $associatedType $isSingleton)) - { - $querableNavProperties.Add($navProperty, $associatedTypeKeyProperties) - } - } - } - } - - $defaultCmdletParameterSet = 'Default' - if ($isSingleton -eq $true -and $querableNavProperties.Count -gt 0) - { - foreach($item in $querableNavProperties.GetEnumerator()) - { - $defaultCmdletParameterSet = $item.Key.Name - break - } - } - $xmlWriter.WriteAttributeString('DefaultCmdletParameterSet', $defaultCmdletParameterSet) - - - $xmlWriter.WriteStartElement('QueryableProperties') - - $position = 0 - - if ($isSingleton -eq $false) - { - $keys | ? { $_ -ne $null } | % { - $xmlWriter.WriteStartElement('Property') - $xmlWriter.WriteAttributeString('PropertyName', $_.Name) - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $_.TypeName $complexTypeMapping - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('RegularQuery') - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $_.Name) - $xmlWriter.WriteAttributeString('CmdletParameterSets', 'Default') - $xmlWriter.WriteAttributeString('IsMandatory', $_.IsMandatory.ToString().ToLower()) - $xmlWriter.WriteAttributeString('Position', $position) - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - - $position++ - } - } - - if ($querableNavProperties.Count -gt 0) - { - foreach($item in $querableNavProperties.GetEnumerator()) - { - $xmlWriter.WriteStartElement('Property') - $xmlWriter.WriteAttributeString('PropertyName', $item.Key.Name + ':' + $item.Value.Name + ':Key') - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $item.Value.TypeName $complexTypeMapping - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('RegularQuery') - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', 'Associated' + $item.Key.Name + $item.Value.Name) - $xmlWriter.WriteAttributeString('CmdletParameterSets', $item.Key.Name) - $xmlWriter.WriteAttributeString('IsMandatory', 'false') - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - } - - if ($isSingleton -eq $false) - { - # Add Query Parameters (i.e., Top, Skip, OrderBy, Filter) to the generated Get-* cmdlets. - $queryParameters = - @{ - "Filter" = "Edm.String"; - "IncludeTotalResponseCount" = "switch"; - "OrderBy" = "Edm.String"; - "Select" = "Edm.String"; - "Skip" = "Edm.Int32"; - "Top" = "Edm.Int32"; - } - } - else - { - $queryParameters = - @{ - "Select" = "Edm.String"; - } - } - - foreach($currentQueryParameter in $queryParameters.Keys) - { - $xmlWriter.WriteStartElement('Property') - $xmlWriter.WriteAttributeString('PropertyName', "QueryOption:" + $currentQueryParameter) - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $queryParameters[$currentQueryParameter] - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('RegularQuery') - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $currentQueryParameter) - - if($queryParameters[$currentQueryParameter] -eq "Edm.String") - { - $xmlWriter.WriteStartElement('ValidateNotNullOrEmpty') - $xmlWriter.WriteEndElement() - } - - if($queryParameters[$currentQueryParameter] -eq "Edm.Int32") - { - $xmlWriter.WriteStartElement('ValidateRange') - $xmlWriter.WriteAttributeString('Min', "1") - $xmlWriter.WriteAttributeString('Max', [int]::MaxValue) - $xmlWriter.WriteEndElement() - } - - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - - - $xmlWriter.WriteEndElement() - } - - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('GetCmdlet') - $xmlWriter.WriteStartElement('CmdletMetadata') - $xmlWriter.WriteAttributeString('Verb', 'Get') - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteEndElement() -} - -# Helper Method -# Returns true if navigation property of $AssociatedType has coresponding EntitySet or Singleton -# If yes, then it should become an associated parameter in CDXML -function ShouldBeAssociatedParameter -{ - param - ( - [System.Collections.ArrayList] $GlobalMetadata, - [ODataUtils.EntityTypeV4] $EntityType, - [ODataUtils.EntityTypeV4] $AssociatedType - ) - - # Check if associated type has navigation property, which links back to current type - $associatedTypeNavProperties = $AssociatedType.NavigationProperties | ? { - $_.Type -eq ($EntityType.Namespace + "." + $EntityType.Name) -or - $_.Type -eq ($EntityType.Alias + "." + $EntityType.Name) -or - $_.Type -eq ("Collection(" + $EntityType.Namespace + "." + $EntityType.Name + ")") -or - $_.Type -eq ("Collection(" + $EntityType.Alias + "." + $EntityType.Name + ")") - } - - if ($associatedTypeNavProperties.Length -lt 1) - { - return $false - } - - # Now check if associated parameter type (i.e, type of navigation property) has corresponding EntitySet or Singleton, - # which makes it accessible from the service root. - # Otherwise the Uri for associated navigation property won't be valid - foreach ($currentMetadata in $GlobalMetadata) - { - # Look for EntitySet with given type - foreach ($currentEntitySet in $currentMetadata.EntitySets) - { - if ($currentEntitySet.Type.Namespace -eq $EntityType.Namespace -and - $currentEntitySet.Type.Name -eq $EntityType.Name) - { - return $true - } - } - - # Look for Singleton with given type - foreach ($currentSingleton in $currentMetadata.Singletons) - { - if ($currentSingleton.Type.Namespace -eq $EntityType.Namespace -and - $currentSingleton.Type.Name -eq $EntityType.Name) - { - return $true - } - } - } - - return $false -} - -######################################################### -# Saves NewCmdlet node to CDXML -######################################################### -function SaveCDXMLNewCmdlet -{ - param - ( - [System.XMl.XmlTextWriter] $xmlWriter, - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - $keyProperties, - $nonNullableProperties, - $nullableProperties, - $navigationProperties, - $CmdletAdapter, - $complexTypeMapping - ) - - if($xmlWriter -eq $null) { throw ($LocalizedData.ArguementNullError -f "xmlWriter", "SaveCDXMLNewCmdlet") } - if($Metadata -eq $null) { throw ($LocalizedData.ArguementNullError -f "Metadata", "SaveCDXMLNewCmdlet") } - - $xmlWriter.WriteStartElement('Cmdlet') - $xmlWriter.WriteStartElement('CmdletMetadata') - $xmlWriter.WriteAttributeString('Verb', 'New') - $xmlWriter.WriteAttributeString('DefaultCmdletParameterSet', 'Default') - $xmlWriter.WriteAttributeString('ConfirmImpact', 'Medium') - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Method') - $xmlWriter.WriteAttributeString('MethodName', 'Create') - $xmlWriter.WriteAttributeString('CmdletParameterSet', 'Default') - - AddParametersNode $xmlWriter $keyProperties $nonNullableProperties $nullableProperties $null $true $true $complexTypeMapping - - $xmlWriter.WriteEndElement() - - $navigationProperties | ? { $_ -ne $null } | % { - $associatedType = GetAssociatedType $Metadata $GlobalMetadata $_ - $associatedEntitySet = GetEntitySetForEntityType $Metadata $associatedType - - $xmlWriter.WriteStartElement('Method') - $xmlWriter.WriteAttributeString('MethodName', "Association:Create:$($associatedEntitySet.Name)") - $xmlWriter.WriteAttributeString('CmdletParameterSet', $_.Name) - - $associatedKeys = ($associatedType.EntityProperties | ? { $_.isKey }) - - AddParametersNode $xmlWriter $associatedKeys $keyProperties $null "Associated$($_.Name)" $true $true $complexTypeMapping - - $xmlWriter.WriteEndElement() - } - - $xmlWriter.WriteEndElement() -} - -######################################################### -# Get corresponding EntityType for given EntitySet -######################################################### -function GetEntitySetForEntityType { - param( - [ODataUtils.MetadataV4] $Metadata, - [ODataUtils.EntityTypeV4] $entityType - ) - - if($entityType -eq $null) { throw ($LocalizedData.ArguementNullError -f "EntityType", "GetEntitySetForEntityType") } - - $result = $Metadata.EntitySets | ? { ($_.Type.Namespace -eq $entityType.Namespace) -and ($_.Type.Name -eq $entityType.Name) } - - if (($result.Count -eq 0) -and ($entityType.BaseType -ne $null)) - { - GetEntitySetForEntityType $Metadata $entityType.BaseType - } - elseif ($result.Count -gt 1) - { - throw ($LocalizedData.WrongCountEntitySet -f (($entityType.Namespace + "." + $entityType.Name), $result.Count)) - } - - $result -} - -######################################################### -# Saves RemoveCmdlet node to CDXML -######################################################### -function SaveCDXMLRemoveCmdlet -{ - param - ( - [System.XMl.XmlTextWriter] $xmlWriter, - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - $keyProperties, - $navigationProperties, - $CmdletAdapter, - $complexTypeMapping - ) - - if($xmlWriter -eq $null) { throw ($LocalizedData.ArguementNullError -f "xmlWriter", "SaveCDXMLRemoveCmdlet") } - if($Metadata -eq $null) { throw ($LocalizedData.ArguementNullError -f "Metadata", "SaveCDXMLRemoveCmdlet") } - - $xmlWriter.WriteStartElement('Cmdlet') - $xmlWriter.WriteStartElement('CmdletMetadata') - $xmlWriter.WriteAttributeString('Verb', 'Remove') - $xmlWriter.WriteAttributeString('DefaultCmdletParameterSet', 'Default') - $xmlWriter.WriteAttributeString('ConfirmImpact', 'Medium') - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Method') - $xmlWriter.WriteAttributeString('MethodName', 'Delete') - $xmlWriter.WriteAttributeString('CmdletParameterSet', 'Default') - - AddParametersNode $xmlWriter $keyProperties $nul $null $null $true $true $complexTypeMapping - - $xmlWriter.WriteEndElement() - - $navigationPrperties | ? { $_ -ne $null } | % { - - $associatedType = GetAssociatedType $Metadata $GlobalMetadata $_ - $associatedEntitySet = GetEntitySetForEntityType $Metadata $associatedType - - $xmlWriter.WriteStartElement('Method') - $xmlWriter.WriteAttributeString('MethodName', "Association:Delete:$($associatedEntitySet.Name)") - $xmlWriter.WriteAttributeString('CmdletParameterSet', $_.Name) - - $associatedType = GetAssociatedType $Metadata $GlobalMetadata $_ - $associatedKeys = ($associatedType.EntityProperties | ? { $_.isKey }) - - AddParametersNode $xmlWriter $associatedKeys $keyProperties $null "Associated$($_.Name)" $true $true $complexTypeMapping - - $xmlWriter.WriteEndElement() - } - $xmlWriter.WriteEndElement() -} - -######################################################### -# Gets associated instance's EntityType for a given navigation property -######################################################### -function GetAssociatedType { - param( - [ODataUtils.MetadataV4] $Metadata, - [System.Collections.ArrayList] $GlobalMetadata, - [ODataUtils.NavigationPropertyV4] $navProperty - ) - - $associationType = $navProperty.Type - $associationType = $associationType.Replace($Metadata.Namespace + ".", "") - $associationType = $associationType.Replace($Metadata.Alias + ".", "") - $associationType = $associationType.Replace("Collection(", "") - $associationType = $associationType.Replace(")", "") - - $associatedType = $Metadata.EntityTypes | ? { $_.Name -eq $associationType } - - if (!$associatedType -and $GlobalMetadata -ne $null) - { - $associationFullTypeName = $navProperty.Type.Replace("Collection(", "").Replace(")", "") - - foreach ($referencedMetadata in $GlobalMetadata) - { - if (($associatedType = $referencedMetadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $associationFullTypeName -or $_.Alias + "." + $_.Name -eq $associationFullTypeName }) -ne $null -or - ($associatedType = $referencedMetadata.ComplexTypes | Where { $_.Namespace + "." + $_.Name -eq $associationFullTypeName -or $_.Alias + "." + $_.Name -eq $associationFullTypeName }) -ne $null -or - ($associatedType = $referencedMetadata.EnumTypes | Where { $_.Namespace + "." + $_.Name -eq $associationFullTypeName -or $_.Alias + "." + $_.Name -eq $associationFullTypeName }) -ne $null) - { - # Found associated class - break - } - } - } - - if ($associatedType.Count -lt 1) - { - throw ($LocalizedData.AssociationNotFound -f $associationType) - } - elseif ($associatedType.Count -gt 1) - { - throw ($LocalizedData.TooManyMatchingAssociationTypes -f $associatedType.Count, $associationType) - } - - # return associated EntityType - $associatedType -} - -######################################################### -# Saves CDXML for Instance/Service level actions -######################################################### -function SaveCDXMLAction -{ - param - ( - [System.Xml.XmlWriter] $xmlWriter, - [ODataUtils.ActionV4] $action, - [AllowEmptyString()] - [string] $noun, - [bool] $isInstanceAction, - [ODataUtils.TypeProperty] $keys, - [Hashtable] $complexTypeMapping - ) - - if($xmlWriter -eq $null) { throw ($LocalizedData.ArguementNullError -f "xmlWriter", "SaveCDXMLAction") } - if($action -eq $null) { throw ($LocalizedData.ArguementNullError -f "action", "SaveCDXMLAction") } - - $xmlWriter.WriteStartElement('Cmdlet') - - $xmlWriter.WriteStartElement('CmdletMetadata') - $xmlWriter.WriteAttributeString('Verb', 'Invoke') - $xmlWriter.WriteAttributeString('Noun', "$($noun)$($action.Name)") - $xmlWriter.WriteAttributeString('ConfirmImpact', 'Medium') - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Method') - $xmlWriter.WriteAttributeString('MethodName', "Action:$($action.Name):$($action.EntitySet.Name)") - - $xmlWriter.WriteStartElement('Parameters') - - $keys | ? { $_ -ne $null } | % { - $xmlWriter.WriteStartElement('Parameter') - $xmlWriter.WriteAttributeString('ParameterName', $_.Name + ':Key') - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $_.TypeName $complexTypeMapping - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $_.Name) - $xmlWriter.WriteAttributeString('IsMandatory', 'true') - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - - $i = -1 - foreach ($parameter in $action.Parameters) - { - $i++ - - # for Instance actions, first parameter is Entity Set which we refer to using keys - if ($isInstanceAction -and ($i -eq 0)) - { - continue - } - - $xmlWriter.WriteStartElement('Parameter') - $xmlWriter.WriteAttributeString('ParameterName', $parameter.Name) - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $parameter.TypeName - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $parameter.Name) - if (-not $parameter.IsNullable) - { - $xmlWriter.WriteAttributeString('IsMandatory', 'true') - } - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - - # Add -Force parameter to Service Action cmdlets. - AddParametersNode $xmlWriter $null $null $null $null $true $false $complexTypeMapping - - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteEndElement() - - $xmlWriter -} - -######################################################### -# Saves CDXML for Instance/Service level functions -######################################################### -function SaveCDXMLFunction -{ - param - ( - [System.Xml.XmlWriter] $xmlWriter, - [ODataUtils.FunctionV4] $function, - [AllowEmptyString()] - [string] $noun, - [bool] $isInstanceAction, - [ODataUtils.TypeProperty] $keys, - [Hashtable] $complexTypeMapping - ) - - if($xmlWriter -eq $null) { throw ($LocalizedData.ArguementNullError -f "xmlWriter", "SaveCDXMLFunction") } - if($function -eq $null) { throw ($LocalizedData.ArguementNullError -f "function", "SaveCDXMLFunction") } - - $xmlWriter.WriteStartElement('Cmdlet') - - $xmlWriter.WriteStartElement('CmdletMetadata') - $xmlWriter.WriteAttributeString('Verb', 'Invoke') - $xmlWriter.WriteAttributeString('Noun', "$($noun)$($function.Name)") - $xmlWriter.WriteAttributeString('ConfirmImpact', 'Medium') - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Method') - if (!$function.EntitySet) - { - $xmlWriter.WriteAttributeString('MethodName', "Action:$($function.Name):$($function.ReturnType)") - } - else - { - $xmlWriter.WriteAttributeString('MethodName', "Action:$($function.Name):$($function.EntitySet)") - } - - $xmlWriter.WriteStartElement('Parameters') - - $keys | ? { $_ -ne $null } | % { - $xmlWriter.WriteStartElement('Parameter') - $xmlWriter.WriteAttributeString('ParameterName', $_.Name + ':Key') - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $_.TypeName $complexTypeMapping - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $_.Name) - $xmlWriter.WriteAttributeString('IsMandatory', 'true') - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - - $i = -1 - foreach ($parameter in $function.Parameters) - { - $i++ - - # for Instance actions, first parameter is Entity Set which we refer to using keys - if ($isInstanceAction -and ($i -eq 0)) - { - continue - } - - $xmlWriter.WriteStartElement('Parameter') - $xmlWriter.WriteAttributeString('ParameterName', $parameter.Name) - - $xmlWriter.WriteStartElement('Type') - $PSTypeName = Convert-ODataTypeToCLRType $parameter.Type - $xmlWriter.WriteAttributeString('PSType', $PSTypeName) - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('CmdletParameterMetadata') - $xmlWriter.WriteAttributeString('PSName', $parameter.Name) - if (-not $parameter.IsNullable) - { - $xmlWriter.WriteAttributeString('IsMandatory', 'true') - } - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - } - - # Add -Force parameter to Service Function cmdlets. - AddParametersNode $xmlWriter $null $null $null $null $true $false $complexTypeMapping - - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteEndElement() - - $xmlWriter -} - -######################################################### -# Saves CDXML for Service-level actions and functions -######################################################### -function SaveServiceActionsCDXML -{ - param - ( - [System.Collections.ArrayList] $GlobalMetadata, - [ODataUtils.ODataEndpointProxyParameters] $ODataEndpointProxyParameters, - [string] $Path, - [Hashtable] $complexTypeMapping, - [string] $progressBarStatus, - [string] $CmdletAdapter - ) - - $xmlWriter = New-Object System.XMl.XmlTextWriter($Path,$Null) - - if ($xmlWriter -eq $null) - { - throw $LocalizedData.XmlWriterInitializationError -f "ServiceActions" - } - - $xmlWriter = SaveCDXMLHeader $xmlWriter $ODataEndpointProxyParameters.Uri 'ServiceActions' 'ServiceActions' -CmdletAdapter $CmdletAdapter - - $actions = @() - $functions = @() - - foreach ($Metadata in $GlobalMetadata) - { - $actions += $Metadata.Actions | Where-Object { $_.EntitySet -eq '' -or $_.EntitySet -eq $null } - $functions += $Metadata.Functions | Where-Object { $_.EntitySet -eq '' -or $_.EntitySet -eq $null } - } - - if ($actions.Length -gt 0 -or $functions.Length -gt 0) - { - $xmlWriter.WriteStartElement('StaticCmdlets') - } - - # Save actions - if ($actions.Length -gt 0) - { - foreach ($action in $actions) - { - if ($action -ne $null) - { - $xmlWriter = SaveCDXMLAction $xmlWriter $action '' $false $null $complexTypeMapping - } - } - } - - # Save functions - if ($functions.Length -gt 0) - { - foreach ($function in $functions) - { - if ($function -ne $null) - { - $xmlWriter = SaveCDXMLFunction $xmlWriter $function '' $false $null $complexTypeMapping - } - } - } - - if ($actions.Length -gt 0 -or $functions.Length -gt 0) - { - $xmlWriter.WriteEndElement() - } - - $xmlWriter.WriteStartElement('CmdletAdapterPrivateData') - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'Namespace') - $xmlWriter.WriteString("$($EntitySet.Namespace)") - $xmlWriter.WriteEndElement() - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'Alias') - if (!$EntitySet.Alias) - { - $xmlWriter.WriteString("") - } - else - { - $xmlWriter.WriteString("$($EntitySet.Alias)") - } - $xmlWriter.WriteEndElement() - - $xmlWriter.WriteStartElement('Data') - $xmlWriter.WriteAttributeString('Name', 'CreateRequestMethod') - $xmlWriter.WriteString("Post") - $xmlWriter.WriteEndElement() - $xmlWriter.WriteEndElement() - - SaveCDXMLFooter $xmlWriter - - Write-Verbose ($LocalizedData.VerboseSavedServiceActions -f $Path) - - # Write progress bar message - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 60 20 1 1 -} - -######################################################### -# GenerateModuleManifest is a helper function used -# to generate a wrapper module manifest file. The -# generated module manifest is persisted to the disk at -# the specified OutputModule path. When the module -# manifest is imported, the following comands will -# be imported: -# 1. Get, Set, New & Remove proxy cmdlets for entity -# sets and singletons. -# 2. If the server side Odata endpoint exposes complex -# types, enum types, type definitions, then the corresponding -# client side proxy types imported. -# 3. Service Action/Function proxy cmdlets. -######################################################### -function GenerateModuleManifest -{ - param - ( - [System.Collections.ArrayList] $GlobalMetadata, - [String] $ModulePath, - [string[]] $AdditionalModules, - [Hashtable] $resourceNameMappings, - [string] $progressBarStatus - ) - - if($progressBarStatus -eq $null) { throw ($LocalizedData.ArguementNullError -f "progressBarStatus", "GenerateModuleManifest") } - - $NestedModules = @() - - foreach ($Metadata in $GlobalMetadata) - { - foreach ($entitySet in $Metadata.EntitySets) - { - $entitySetName = $entitySet.Name - if(($null -ne $resourceNameMappings) -and - $resourceNameMappings.ContainsKey($entitySetName)) - { - $entitySetName = $resourceNameMappings[$entitySetName] - } - else - { - $entitySetName = $entitySet.Type.Name - } - - $NestedModules += "$OutputModule\$($entitySetName).cdxml" - } - - foreach ($singleton in $Metadata.SingletonTypes) - { - $singletonName = $singleton.Name - $NestedModules += "$OutputModule\$($singletonName)" + "Singleton" + ".cdxml" - } - } - - New-ModuleManifest -Path $ModulePath -NestedModules ($AdditionalModules + $NestedModules) - - Write-Verbose ($LocalizedData.VerboseSavedModuleManifest -f $ModulePath) - - # Update the Progress Bar. - ProgressBarHelper "Export-ODataEndpointProxy" $progressBarStatus 80 20 1 1 -} - -######################################################### -# This is a helper function used to generate comlplex -# type defination from the metadata. -######################################################### -function GenerateComplexTypeDefinition -{ - param - ( - [System.Collections.ArrayList] $GlobalMetadata, - [string] $OutputModule, - [string] $typeDefinationFileName, - $normalizedNamespaces - ) - - $Path = "$OutputModule\$typeDefinationFileName" - $date = Get-Date - - $output = @" -# This module was generated by PSODataUtils on $date. - -`$typeDefinitions = @" -using System; -using System.Management.Automation; -using System.ComponentModel; - -"@ - # We are currently generating classes for EntityType & ComplexType - # defination exposed in the metadata. - - $complexTypeMapping = @{} - - # First, create complex type mappings for all metadata files at once - foreach ($metadata in $GlobalMetadata) - { - $typesToBeGenerated = $metadata.EntityTypes+$metadata.ComplexTypes - $enumTypesToBeGenerated = $metadata.EnumTypes - $typeDefinitionsToBeGenerated = $metadata.TypeDefinitions - - foreach ($entityType in $typesToBeGenerated) - { - if ($entityType -ne $null) - { - $entityTypeFullName = $entityType.Namespace + '.' + $entityType.Name - if(!$complexTypeMapping.ContainsKey($entityTypeFullName)) - { - $complexTypeMapping.Add($entityTypeFullName, $entityType.Name) - } - - # In short name we use Alias instead of Namespace - # We will add short name to $complexTypeMapping to enable Alias based search - if ($entityType.Alias -ne $null -and $entityType.Alias -ne "") - { - $entityTypeShortName = $entityType.Alias + '.' + $entityType.Name - if(!$complexTypeMapping.ContainsKey($entityTypeShortName)) - { - $complexTypeMapping.Add($entityTypeShortName, $entityType.Name) - } - } - } - } - - foreach ($enumType in $enumTypesToBeGenerated) - { - if ($enumType -ne $null) - { - $enumTypeFullName = $enumType.Namespace + '.' + $enumType.Name - if(!$complexTypeMapping.ContainsKey($enumTypeFullName)) - { - $complexTypeMapping.Add($enumTypeFullName, $enumType.Name) - } - - if (($enumType.Alias -ne $null -and $enumType.Alias -ne "") -or ($metadata.Alias -ne $null -and $metadata.Alias -ne "")) - { - if ($enumType.Alias -ne $null -and $enumType.Alias -ne "") - { - $alias = $enumType.Alias - } - else - { - $alias = $metadata.Alias - } - - $enumTypeShortName = $alias + '.' + $enumType.Name - if(!$complexTypeMapping.ContainsKey($enumTypeShortName)) - { - $complexTypeMapping.Add($enumTypeShortName, $enumType.Name) - } - } - } - } - - foreach ($typeDefinition in $typeDefinitionsToBeGenerated) - { - if ($typeDefinition -ne $null) - { - $typeDefinitionFullName = $typeDefinition.Namespace + '.' + $typeDefinition.Name - if(!$complexTypeMapping.ContainsKey($typeDefinitionFullName)) - { - $complexTypeMapping.Add($typeDefinitionFullName, $typeDefinition.Name) - } - - # In short name we use Alias instead of Namespace - # We will add short name to $complexTypeMapping to enable Alias based search - if ($typeDefinition.Alias) - { - $typeDefinitionShortName = $typeDefinition.Alias + '.' + $typeDefinition.Name - if(!$complexTypeMapping.ContainsKey($typeDefinitionShortName)) - { - $complexTypeMapping.Add($typeDefinitionShortName, $typeDefinition.Name) - } - } - } - } - } - - # Now classes definitions will be generated - foreach ($metadata in $GlobalMetadata) - { - $typesToBeGenerated = $metadata.EntityTypes+$metadata.ComplexTypes - $enumTypesToBeGenerated = $metadata.EnumTypes - $typeDefinitionsToBeGenerated = $metadata.TypeDefinitions - - if($typesToBeGenerated.Count -gt 0 -or $enumTypesToBeGenerated.Count -gt 0) - { - if ($metadata.Alias -ne $null -and $metadata.Alias -ne "") - { - # Check if this namespace has to be normalized in the .Net namespace/class definitions file. - $dotNetAlias = GetNamespace $metadata.Alias $normalizedNamespaces - - $output += @" - -namespace $($dotNetAlias) -{ -"@ - } - else - { - # Check if this namespace has to be normalized in the .Net namespace/class definitions file. - $dotNetNamespace = GetNamespace $metadata.Namespace $normalizedNamespaces - - $output += @" - -namespace $($dotNetNamespace) -{ -"@ - } - - foreach ($typeDefinition in $typeDefinitionsToBeGenerated) - { - if ($typeDefinition -ne $null) - { - Write-Verbose ($LocalizedData.VerboseAddingTypeDefinationToGeneratedModule -f $typeDefinitionFullName, "$OutputModule\$typeDefinationFileName") - - $output += "`n public class $($typeDefinition.Name)`n {" - $typeName = Convert-ODataTypeToCLRType $typeDefinition.BaseTypeStr $complexTypeMapping - $dotNetPropertyNamespace = GetNamespace $typeName $normalizedNamespaces $true - $output += "`n public $dotNetPropertyNamespace value;" - $output += @" -`n } -"@ - } - } - - $DotNETKeywords = ("abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "decimal", "default", "delegate", "do", "double", "else", "enum", "event", "explicit", "extern", "false", "finally", "fixed", "float", "for", "foreach", "goto", "if", "implicit", "in", "in", "int", "interface", "internal", "is", "lock", "long", "namespace", "new", "null", "object", "operator", "out", "out", "override", "params", "private", "protected", "public", "readonly", "ref", "return", "sbyte", "sealed", "short", "sizeof", "stackalloc", "static", "string", "struct", "switch", "this", "throw", "true", "try", "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort", "using", "virtual", "void", "volatile", "while", "add", "alias", "ascending", "async", "await", "descending", "dynamic", "from", "get", "global", "group", "into", "join", "let", "orderby", "partial", "partial", "remove", "select", "set", "value", "var", "where", "yield") - - foreach ($enumType in $enumTypesToBeGenerated) - { - if ($enumType -ne $null) - { - $enumTypeFullName = $enumType.Namespace + '.' + $enumType.Name - - Write-Verbose ($LocalizedData.VerboseAddingTypeDefinationToGeneratedModule -f $enumTypeFullName, "$OutputModule\$typeDefinationFileName") - - $output += "`n public enum $($enumType.Name)`n {" - - $properties = $null - - for($index = 0; $index -lt $enumType.Members.Count; $index++) - { - $memberName = $enumType.Members[$index].Name - $formattedMemberName = [System.Text.RegularExpressions.Regex]::Replace($memberName, "[^0-9a-zA-Z]", "_"); - $memberValue = $enumType.Members[$index].Value - - if ($DotNETKeywords -contains $formattedMemberName) - { - # If member name is a known keyword in .Net, add '@' prefix - $formattedMemberName = '@' + $formattedMemberName - } - - if ($formattedMemberName -match "^[0-9]*$") - { - # If member name is a numeric value, add 'm_' prefix - $formattedMemberName = 'm_' + $formattedMemberName - } - - if ($memberName -ne $formattedMemberName -or $formattedMemberName -like '@*' -or $formattedMemberName -like 'm_*') - { - # Add Description attribute to preserve original value - $properties += "`n [Description(`"$($memberName)`")]$formattedMemberName" - } - else - { - $properties += "`n $memberName" - } - - if ($memberValue) - { - $properties += " = $memberValue," - } - else - { - $properties += "," - } - } - - $output += $properties - $output += @" -`n } -"@ - } - } - - foreach ($entityType in $typesToBeGenerated) - { - if ($entityType -ne $null) - { - $entityTypeFullName = $entityType.Namespace + '.' + $entityType.Name - - Write-Verbose ($LocalizedData.VerboseAddingTypeDefinationToGeneratedModule -f $entityTypeFullName, "$OutputModule\$typeDefinationFileName") - - if ($entityType.BaseTypeStr -ne $null -and $entityType.BaseTypeStr -ne '' -and $entityType.BaseType -eq $null) - { - # This class inherits from another class, but we were not able to find base class during Parsing. - # We'll make another attempt. - foreach ($referencedMetadata in $GlobalMetadata) - { - if (($baseType = $referencedMetadata.EntityTypes | Where { $_.Namespace + "." + $_.Name -eq $entityType.BaseTypeStr -or $_.Alias + "." + $_.Name -eq $entityType.BaseTypeStr }) -ne $null -or - ($baseType = $referencedMetadata.ComplexTypes | Where { $_.Namespace + "." + $_.Name -eq $entityType.BaseTypeStr -or $_.Alias + "." + $_.Name -eq $entityType.BaseTypeStr }) -ne $null) - { - # Found base class - $entityType.BaseType = $baseType - break - } - } - } - - if($null -ne $entityType.BaseType) - { - if ((![string]::IsNullOrEmpty($entityType.BaseType.Alias) -and $entityType.BaseType.Alias -eq $entityType.Alias) -or - (![string]::IsNullOrEmpty($entityType.BaseType.Namespace) -and $entityType.BaseType.Namespace -eq $entityType.Namespace)) - { - $fullBaseTypeName = $entityType.BaseType.Name - } - else - { - # Base type can be defined in different namespace. For that reason we include namespace or alias. - if (![string]::IsNullOrEmpty($entityType.BaseType.Alias)) - { - # Check if derived alias has to be normalized. - $normalizedDotNetAlias = GetNamespace $entityType.BaseType.Alias $normalizedNamespaces - $fullBaseTypeName = $normalizedDotNetAlias + "." + $entityType.BaseType.Name - } - else - { - # Check if derived namespace has to be normalized. - $normalizedDotNetNamespace = GetNamespace $entityType.BaseType.Namespace $normalizedNamespaces - $fullBaseTypeName = $normalizedDotNetNamespace + "." + $entityType.BaseType.Name - } - } - - $output += "`n public class $($entityType.Name) : $($fullBaseTypeName)`n {" - } - else - { - $output += "`n public class $($entityType.Name)`n {" - } - - $properties = $null - - for($index = 0; $index -lt $entityType.EntityProperties.Count; $index++) - { - $property = $entityType.EntityProperties[$index] - $typeName = Convert-ODataTypeToCLRType $property.TypeName $complexTypeMapping - - if ($typeName.StartsWith($metadata.Namespace + ".")) - { - $dotNetPropertyNamespace = $typeName.Replace($metadata.Namespace + ".", "") - } - elseif ($typeName.StartsWith($metadata.Alias + ".")) - { - $dotNetPropertyNamespace = $typeName.Replace($metadata.Alias + ".", "") - } - else - { - $dotNetPropertyNamespace = GetNamespace $typeName $normalizedNamespaces $true - } - - $properties += "`n public $dotNetPropertyNamespace $($property.Name);" - } - - $output += $properties - $output += @" -`n } -"@ - } - } - - $output += "`n}`n" - } - } - $output += """@`n" - $output += "Add-Type -TypeDefinition `$typeDefinitions -IgnoreWarnings`n" - $output | Out-File -FilePath $Path - Write-Verbose ($LocalizedData.VerboseSavedTypeDefinationModule -f $typeDefinationFileName, $OutputModule) - - return $complexTypeMapping -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/ko-KR/Microsoft.PowerShell.ODataUtilsStrings.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.ODataUtils/ko-KR/Microsoft.PowerShell.ODataUtilsStrings.psd1 deleted file mode 100644 index 82cadd47b4872dcf0e715d938624afa0ac6fa851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8906 zcmcgyU1%KF6+RDsXi7_yQiDoV7>G(NTC0+swoZtORmn~qWXFl*cq#IOV#)SWTUNE} zL{4SMg99$4kbocb(7veO&nnjE=fP3+~oCdmxddQrW3;{@Or>(jCdH6ehBs+|75)$10TK+T4XoP>wy=pZJ}H z2MyzM&>+gsPU)Y^mq%xle*3Z~=lu4|l7gO}ri-3j@a-BNyy#6>=p{&|*ekC4jK$UO zhoI94)+LVgv81uv5HuWypCz!8DGcd|CQ%-r;Dix8Rdx(IHr42>Yw8j^PYrpI6jMyMB2nrS-wPg&Vn#U?1l@F7|?UbrIm=Y$>~v zCda5RGU}Sl@xxra;>p%KcMFVJUg7zl+!?^RZo{v-=Mo~7e9@YAJQ3D>eHtq7)M8E^ zm|RL_>v>?K_{YE*Cm$o?F<7qGM0Yg4kBS(V(cUt?kbqAxFvO26fOF9fnu(2qCjUwtMcGcyjthJz+UCcuG%I6u4r zE0Sdx)lKPAfNQ1-Q{_^YdepD&N%mF;vi5gVMDGCnrPp}oXlioW$xnLKmq6~)&869RMVZKx2cLcG_5}29S%_uHB(1spVyx1B8Q$b4!DG6I zV@ma+ZSu0;Dy&8Fx$CLMytW>+Sd+vN#|eYi}x%I4(wzQ=u63%{$xD)*2V!ZN8uWQ5h3^uj=9B^|5mn!mW9Rd9Vp zdB|j}!9fwG(-U{N0?pn{U*y1X-gKo;U=%k0bhQFUcBy z41Fg%V|E&CsOs74X=d?c{EAjEZrbAJENpQT2Nq#17=NMtg+UJNf5b*H8gm{{gx@&E{>;R(&umyB@{i ze`nXZ_WP+ng6Y>@wGYw~XT`(CUZ?4HoF7;pxtfP%U3pk$U7h^me5(@~ zhYW94nbk_V-tROk*`30E)M$^e*L1;S==-cEnPHmedp>1O{n#%;ekV_@jvL!^e}J#{ z14~BSG2^rBsyJ-`zhp}@leeb|nOpQA)?1q4JjDP=hV|=$yqpCc#aiUWMm2G5Ptk_% zJnGIwHJ@1<-Y-t47~8*Cimr$HvG-|22esjJfimc%g5RC9&0c}oQHZEsyH;wgjc`@(F@8?-bDq3zD)d(#zE`97c zd`kNj&8^{i1X<3_C@flb7mWp0W7LvJ1h3YKhShzbGCFIKYEF@99ZF=Q;GMP>t*u&v z?0>I#@2^q&B`}d@~{dF%B%P#s=H~{bv=^yOs=|$>SXI#-Z7g+qX&M-3X4^h zjoBbObXKeMt){|KW^md&KjS&qLy~91>=0%@&QWbXTT2qg^ed2%mCKlskgOb*&q<^H zNV{uiL76RgS^TI0ue*3tQn5;XR(u^*ToSb%-KyETfq zpwwNc6vv zsZ9HF%G5PU{|jVn7jvH2Uw6a*?RQVo=sVeYkz+?@)5ZHYS~5v=Y}*4eF@Bm6W%*o_ znf9jgmrx`Bv#?TVsn((UpoQz0f|v$Tu=sXj^+wkO_oChGY%i#%&F<=*QC(+vCd#;I zw4aq}A99k~ofULkeglu-EMW7JlApA7#|N#{Xx(}Y_5uO+Hhu6`PF`8j+N&N1CgjVY)LI#TK4Yf=PY#1V z`89MKjbPq`CPR)xqP#;(`@~!-LNw)+ZJDh1s@L%rCM=uzEQ}6+7x2MAY*5W)Kb5VU6uy zTYd2O6#iIWvNKTrc0Q4wevr$6JwKRx5i#t1!sTdYS@v|}$mzVwPQAW<3vW!fCuj92 z%MuyJN+YzQtXHc~di{Qt%25T$SA~ zpS$bRan+qwpzDs=ud#0&1OqWM2RSv&L3}a`E%T@?D=it;kJcZVsg?0-^YVinpA@SEE)#Rc&l&EPJ1MN}e${HKCF8o2 z?WhVjf{Z6qg)M&Uv!EQ@x4uqOrax}Dj9C8C@Omw>LG0X=I|?uL?BMgs)pUK0&HuBg P{Z9*KqUZ6y82tPn{Bg<} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Security/Microsoft.PowerShell.Security.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Security/Microsoft.PowerShell.Security.psd1 deleted file mode 100644 index 72f97b4..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Security/Microsoft.PowerShell.Security.psd1 +++ /dev/null @@ -1,15 +0,0 @@ -@{ -GUID="A94C8C7E-9810-47C0-B8AF-65089C13A35A" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.0.0.0" -PowerShellVersion = '5.1' -CLRVersion="4.0" -AliasesToExport = @() -FunctionsToExport = @() -CmdletsToExport="Get-Acl", "Set-Acl", "Get-PfxCertificate", "Get-Credential", "Get-ExecutionPolicy", "Set-ExecutionPolicy", "Get-AuthenticodeSignature", "Set-AuthenticodeSignature", "ConvertFrom-SecureString", "ConvertTo-SecureString", "Get-CmsMessage", "Unprotect-CmsMessage", "Protect-CmsMessage" , "New-FileCatalog" , "Test-FileCatalog" -NestedModules="Microsoft.PowerShell.Security.dll" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390786' -CompatiblePSEditions = @('Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psd1 deleted file mode 100644 index ab00f7a..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psd1 +++ /dev/null @@ -1,34 +0,0 @@ -@{ -GUID="1DA87E53-152B-403E-98DC-74D7B4D63D59" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.1.0.0" -PowerShellVersion = '5.1' -CLRVersion="4.0" -CmdletsToExport= "Format-List", "Format-Custom", "Format-Table", "Format-Wide", - "Out-File", "Out-Printer", "Out-String", - "Out-GridView", "Get-FormatData", "Export-FormatData", "ConvertFrom-Json", "ConvertTo-Json", - "Invoke-RestMethod", "Invoke-WebRequest", "Register-ObjectEvent", "Register-EngineEvent", - "Wait-Event", "Get-Event", "Remove-Event", "Get-EventSubscriber", "Unregister-Event", - "New-Event", "Add-Member", "Add-Type", "Compare-Object", "ConvertTo-Html", "ConvertFrom-StringData", - "Export-Csv", "Import-Csv", "ConvertTo-Csv", "ConvertFrom-Csv", "Export-Alias", "Invoke-Expression", - "Get-Alias", "Get-Culture", "Get-Date", "Get-Host", "Get-Member", "Get-Random", "Get-UICulture", - "Get-Unique", "Export-PSSession", "Import-PSSession", "Import-Alias", "Import-LocalizedData", - "Select-String", "Measure-Object", "New-Alias", "New-TimeSpan", "Read-Host", "Set-Alias", "Set-Date", - "Start-Sleep", "Tee-Object", "Measure-Command", "Update-List", "Update-TypeData", "Update-FormatData", - "Remove-TypeData", "Get-TypeData", "Write-Host", "Write-Progress", "New-Object", "Select-Object", - "Group-Object", "Sort-Object", "Get-Variable", "New-Variable", "Set-Variable", "Remove-Variable", - "Clear-Variable", "Export-Clixml", "Import-Clixml", "ConvertTo-Xml", "Select-Xml", "Write-Debug", - "Write-Verbose", "Write-Warning", "Write-Error", "Write-Information", "Write-Output", "Set-PSBreakpoint", "Get-PSBreakpoint", - "Remove-PSBreakpoint", "Enable-PSBreakpoint", "Disable-PSBreakpoint", "Get-PSCallStack", - "Send-MailMessage", "Get-TraceSource", "Set-TraceSource", "Trace-Command", "Show-Command", "Unblock-File", - "Get-Runspace", "Debug-Runspace", "Enable-RunspaceDebug", "Disable-RunspaceDebug", "Get-RunspaceDebug", "Wait-Debugger", - "ConvertFrom-String", "Convert-String" -FunctionsToExport= "Get-FileHash", "New-TemporaryFile", "New-Guid", "Format-Hex", "Import-PowerShellDataFile", - "ConvertFrom-SddlString" -AliasesToExport= "CFS", "fhx" -NestedModules="Microsoft.PowerShell.Commands.Utility.dll","Microsoft.PowerShell.Utility.psm1" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390787' -CompatiblePSEditions = @('Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psm1 b/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psm1 deleted file mode 100644 index d702a30..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.PowerShell.Utility/Microsoft.PowerShell.Utility.psm1 +++ /dev/null @@ -1,740 +0,0 @@ -function Get-FileHash -{ - [CmdletBinding(DefaultParameterSetName = "Path", HelpURI = "https://go.microsoft.com/fwlink/?LinkId=517145")] - param( - [Parameter(Mandatory, ParameterSetName="Path", Position = 0)] - [System.String[]] - $Path, - - [Parameter(Mandatory, ParameterSetName="LiteralPath", ValueFromPipelineByPropertyName = $true)] - [Alias("PSPath")] - [System.String[]] - $LiteralPath, - - [Parameter(Mandatory, ParameterSetName="Stream")] - [System.IO.Stream] - $InputStream, - - [ValidateSet("SHA1", "SHA256", "SHA384", "SHA512", "MACTripleDES", "MD5", "RIPEMD160")] - [System.String] - $Algorithm="SHA256" - ) - - begin - { - # Construct the strongly-typed crypto object - - # First see if it has a FIPS algorithm - $hasherType = "System.Security.Cryptography.${Algorithm}CryptoServiceProvider" -as [Type] - if ($hasherType) - { - $hasher = $hasherType::New() - } - else - { - # Check if the type is supported in the current system - $algorithmType = "System.Security.Cryptography.${Algorithm}" -as [Type] - if ($algorithmType) - { - if ($Algorithm -eq "MACTripleDES") - { - $hasher = $algorithmType::New() - } - else - { - $hasher = $algorithmType::Create() - } - } - else - { - $errorId = "AlgorithmTypeNotSupported" - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::AlgorithmTypeNotSupported -f $Algorithm - $exception = [System.InvalidOperationException]::New($errorMessage) - $errorRecord = [System.Management.Automation.ErrorRecord]::New($exception, $errorId, $errorCategory, $null) - $PSCmdlet.ThrowTerminatingError($errorRecord) - } - } - - function GetStreamHash - { - param( - [System.IO.Stream] - $InputStream, - - [System.String] - $RelatedPath, - - [System.Security.Cryptography.HashAlgorithm] - $Hasher) - - # Compute file-hash using the crypto object - [Byte[]] $computedHash = $Hasher.ComputeHash($InputStream) - [string] $hash = [BitConverter]::ToString($computedHash) -replace '-','' - - if ($RelatedPath -eq $null) - { - $retVal = [PSCustomObject] @{ - Algorithm = $Algorithm.ToUpperInvariant() - Hash = $hash - } - } - else - { - $retVal = [PSCustomObject] @{ - Algorithm = $Algorithm.ToUpperInvariant() - Hash = $hash - Path = $RelatedPath - } - } - $retVal.psobject.TypeNames.Insert(0, "Microsoft.Powershell.Utility.FileHash") - $retVal - } - } - - process - { - if($PSCmdlet.ParameterSetName -eq "Stream") - { - GetStreamHash -InputStream $InputStream -RelatedPath $null -Hasher $hasher - } - else - { - $pathsToProcess = @() - if($PSCmdlet.ParameterSetName -eq "LiteralPath") - { - $pathsToProcess += Resolve-Path -LiteralPath $LiteralPath | Foreach-Object ProviderPath - } - if($PSCmdlet.ParameterSetName -eq "Path") - { - $pathsToProcess += Resolve-Path $Path | Foreach-Object ProviderPath - } - - foreach($filePath in $pathsToProcess) - { - if(Test-Path -LiteralPath $filePath -PathType Container) - { - continue - } - - try - { - # Read the file specified in $FilePath as a Byte array - [system.io.stream]$stream = [system.io.file]::OpenRead($filePath) - GetStreamHash -InputStream $stream -RelatedPath $filePath -Hasher $hasher - } - catch [Exception] - { - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::FileReadError -f $FilePath, $_ - Write-Error -Message $errorMessage -Category ReadError -ErrorId "FileReadError" -TargetObject $FilePath - return - } - finally - { - if($stream) - { - $stream.Dispose() - } - } - } - } - } -} - -<# This cmdlet is used to create a new temporary file in $env:temp #> -function New-TemporaryFile -{ - [CmdletBinding( - HelpURI='https://go.microsoft.com/fwlink/?LinkId=526726', - SupportsShouldProcess=$true)] - [OutputType([System.IO.FileInfo])] - Param() - - Begin - { - try - { - if($PSCmdlet.ShouldProcess($env:TEMP)) - { - $tempFilePath = [System.IO.Path]::GetTempFileName() - } - } - catch - { - $errorRecord = [System.Management.Automation.ErrorRecord]::new($_.Exception,"NewTemporaryFileWriteError", "WriteError", $env:TEMP) - Write-Error -ErrorRecord $errorRecord - return - } - - if($tempFilePath) - { - Get-Item $tempFilePath - } - } -} - -<# This cmdlet is used to generate a new guid #> -function New-Guid -{ - [CmdletBinding(HelpURI='https://go.microsoft.com/fwlink/?LinkId=526920')] - [OutputType([System.Guid])] - Param() - - Begin - { - [Guid]::NewGuid() - } -} - -<############################################################################################ -# Format-Hex cmdlet helps in displaying the Hexadecimal equivalent of the input data. -############################################################################################> -function Format-Hex -{ - [CmdletBinding( - DefaultParameterSetName="Path", - HelpUri="https://go.microsoft.com/fwlink/?LinkId=526919")] - [Alias("fhx")] - [OutputType("Microsoft.PowerShell.Commands.ByteCollection")] - param - ( - [Parameter (Mandatory=$true, Position=0, ParameterSetName="Path")] - [ValidateNotNullOrEmpty()] - [string[]] $Path, - - [Parameter (Mandatory=$true, ParameterSetName="LiteralPath")] - [ValidateNotNullOrEmpty()] - [Alias("PSPath")] - [string[]] $LiteralPath, - - [Parameter(Mandatory=$true, ParameterSetName="ByInputObject", ValueFromPipeline=$true)] - [Object] $InputObject, - - [Parameter (ParameterSetName="ByInputObject")] - [ValidateSet("Ascii", "UTF32", "UTF7", "UTF8", "BigEndianUnicode", "Unicode")] - [string] $Encoding = "Ascii", - - [Parameter(ParameterSetName="ByInputObject")] - [switch]$Raw - ) - - begin - { - $bufferSize = 16 - $inputStreamArray = [System.Collections.ArrayList]::New() - <############################################################################################ - # The ConvertToHexadecimalHelper is a helper method used to fetch unicode bytes from the - # input data and display the hexadecimial representaion of the of the input data in bytes. - ############################################################################################> - function ConvertToHexadecimalHelper - { - param - ( - [Byte[]] $inputBytes, - [string] $path, - [Uint32] $offset - ) - - # This section is used to display the hexadecimal - # representaion of the of the input data in bytes. - if($inputBytes -ne $null) - { - $byteCollectionObject = [Microsoft.PowerShell.Commands.ByteCollection]::new($offset, $inputBytes, $path) - Write-Output -InputObject $byteCollectionObject - } - } - - <############################################################################################ - # The ProcessFileContent is a helper method used to fetch file contents in blocks and - # process it to support displaying hexadecimal formating of the fetched content. - ############################################################################################> - function ProcessFileContent - { - param - ( - [string] $filePath, - [boolean] $isLiteralPath - ) - - if($isLiteralPath) - { - $resolvedPaths = Resolve-Path -LiteralPath $filePath - } - else - { - $resolvedPaths = Resolve-Path -Path $filePath - } - - # If Path resolution has failed then a corresponding non-terminating error is - # written to the pipeline. We continue processing any remaining files. - if($resolvedPaths -eq $null) - { - return - } - - if($resolvedPaths.Count -gt 1) - { - # write a non-terminating error message indicating that path specified is resolving to multiple file system paths. - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::FormatHexResolvePathError -f $filePath - Write-Error -Message $errorMessage -Category ([System.Management.Automation.ErrorCategory]::InvalidData) -ErrorId "FormatHexResolvePathError" - } - - $targetFilePath = $resolvedPaths.ProviderPath - - - if($targetFilePath -ne $null) - { - $buffer = [byte[]]::new($bufferSize) - - try - { - try - { - $currentFileStream = [System.IO.File]::Open($targetFilePath, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read) - } - catch - { - # Failed to access the file. Write a non terminating error to the pipeline - # and move on with the remaining files. - $exception = $_.Exception - if($null -ne $_.Exception -and - $null -ne $_.Exception.InnerException) - { - $exception = $_.Exception.InnerException - } - - $errorRecord = [System.Management.Automation.ErrorRecord]::new($exception,"FormatHexFileAccessError", ([System.Management.Automation.ErrorCategory]::ReadError), $targetFilePath) - $PSCmdlet.WriteError($errorRecord) - } - - if($null -ne $currentFileStream) - { - $srcStream = [System.IO.BinaryReader]::new($currentFileStream) - $displayHeader = $true - $offset = 0 - $blockCounter = 0 - while($numberOfBytesRead = $srcStream.Read($buffer, 0, $bufferSize)) - { - # send only the bytes that have been read - # if we send the whole buffer, we'll have extraneous bytes - # at the end of an incomplete group of 16 bytes - if ( $numberOfBytesRead -eq $bufferSize ) - { - # under some circumstances if we don't copy the buffer - # and the results are stored to a variable, the results are not - # correct and one object replicated in all the output objects - ConvertToHexadecimalHelper ($buffer.Clone()) $targetFilePath $offset - } - else - { - # handle the case of the partial (and probably last) buffer - $bytesReadBuffer = [byte[]]::New($numberOfBytesRead) - [Array]::Copy($buffer,0, $bytesReadBuffer,0,$numberOfBytesRead) - ConvertToHexadecimalHelper $bytesReadBuffer $targetFilePath $offset - } - $displayHeader = $false - $blockCounter++; - - # Updating the offset value. - $offset = $blockCounter*0x10 - } - } - } - finally - { - If($null -ne $currentFileStream) - { - $currentFileStream.Dispose() - } - If($null -ne $srcStream) - { - $srcStream.Dispose() - } - } - } - } - } - - process - { - switch($PSCmdlet.ParameterSetName) - { - "Path" - { - ProcessFileContent $Path $false - } - "LiteralPath" - { - ProcessFileContent $LiteralPath $true - } - "ByInputObject" - { - # If it's an actual byte array, then we directly use it for hexadecimal formatting. - if($InputObject -is [Byte[]]) - { - ConvertToHexadecimalHelper $InputObject $null - return - } - # if it's a single byte, we'll assume streaming - elseif($InputObject -is [byte]) - { - $null = $inputStreamArray.Add($InputObject) - } - # If the input data is of string type then directly get bytes out of it. - elseif($InputObject -is [string]) - { - # The ValidateSet arribute on the Encoding paramter makes sure that only - # valid values (supported on all paltforms where Format-Hex is avaliable) - # are allowed through user input. - $inputBytes = [Text.Encoding]::$Encoding.GetBytes($InputObject) - ConvertToHexadecimalHelper $inputBytes $null - return - } - elseif($InputObject -is [System.IO.FileSystemInfo]) - { - # If file path is provided as an input, use the file contents to show the hexadecimal format. - $filePath = ([System.IO.FileSystemInfo]$InputObject).FullName - ProcessFileContent $filePath $false - return - } - elseif($InputObject -is [int64]) - { - $inputBytes = [BitConverter]::GetBytes($InputObject) - $null = $inputStreamArray.AddRange($inputBytes) - } - elseif($InputObject -is [int64[]]) - { - foreach($i64 in $InputObject) - { - $inputBytes = [BitConverter]::GetBytes($i64) - $null = $inputStreamArray.AddRange($inputBytes) - } - } - elseif($InputObject -is [int]) - { - # If we get what appears as ints, it may not be what the user really wants. - # for example, if the user types a small set of numbers just to get their - # character representations, as follows: - # - # 170..180 | format-hex - # Path: - # 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F - #00000000 AA AB AC AD AE AF B0 B1 B2 B3 B4 ª«¬­®¯°±²³´ - # - # any integer padding is likely to be more confusing than this - # fairly compact representation. - # - # However, some might like to see the results with the raw data, - # -Raw exists to provide that behavior: - # PS# 170..180 | format-hex -Raw - # - # Path: - # - # 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F - # - # 00000000 AA 00 00 00 AB 00 00 00 AC 00 00 00 AD 00 00 00 ª...«...¬...­... - # 00000010 AE 00 00 00 AF 00 00 00 B0 00 00 00 B1 00 00 00 ®...¯...°...±... - # 00000020 B2 00 00 00 B3 00 00 00 B4 00 00 00 ²...³...´... - # - # this provides a representation of the piped numbers which includes all - # of the bytes which are in an int32 - if ( $Raw ) - { - $inputBytes = [BitConverter]::GetBytes($InputObject) - $null = $inputStreamArray.AddRange($inputBytes) - } - else - { - # first determine whether we can represent this as a byte - $possibleByte = $InputObject -as [byte] - # first determine whether we can represent this as a int16 - $possibleInt16 = $InputObject -as [int16] - if ( $possibleByte -ne $null ) - { - $null = $inputStreamArray.Add($possibleByte) - } - elseif ( $possibleint16 -ne $null ) - { - $inputBytes = [BitConverter]::GetBytes($possibleInt16) - $null = $inputStreamArray.AddRange($inputBytes) - } - else - { - # now int - $inputBytes = [BitConverter]::GetBytes($InputObject) - $null = $inputStreamArray.AddRange($inputBytes) - } - } - } - else - { - # Otherwise, write a non-terminating error message indicating that input object type is not supported. - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::FormatHexTypeNotSupported -f $InputObject.GetType() - Write-Error -Message $errorMessage -Category ([System.Management.Automation.ErrorCategory]::ParserError) -ErrorId "FormatHexFailureTypeNotSupported" - } - # Handle streaming case here - # during this process we may not have enough characters to create a ByteCollection - # if we do, create as many ByteCollections as necessary, each being 16 bytes in length - if ( $inputStreamArray.Count -ge $bufferSize ) - { - $rowCount = [math]::Floor($inputStreamArray.Count/$bufferSize) - $arrayLength = $bufferSize * $rowCount - for($i = 0; $i -lt $rowCount; $i++) - { - $rowOffset = $i * $bufferSize - ConvertToHexadecimalHelper -inputBytes $inputStreamArray.GetRange($rowOffset, $bufferSize) -path ' ' -offset $offset - $offset += $bufferSize - } - # We use RemoveRange because of the pathological case of having - # streamed combination of bytes, int16, int32, int64 which are greater - # than 16 bytes. Consider the case: - # $i = [int16]::MaxValue + 3 - # $i64=[int64]::MaxValue -5 - # .{ $i;$i;$i;$i64 } | format-hex - # which create an arraylist 20 bytes - # we need to remove only the bytes from the array which we emitted - $inputStreamArray.RemoveRange(0,$arrayLength) - } - } - } - } - end - { - # now manage any left over bytes in the $inputStreamArray - if ( $PSCmdlet.ParameterSetName -eq "ByInputObject" ) - { - ConvertToHexadecimalHelper $inputStreamArray $null -path ' ' -offset $offset - } - } - -} - -## Imports a PowerShell Data File - a PowerShell hashtable defined in -## a file (such as a Module manifest, session configuration file) -function Import-PowerShellDataFile -{ - [CmdletBinding(DefaultParameterSetName = "ByPath", HelpUri = "https://go.microsoft.com/fwlink/?LinkID=623621")] - [OutputType("System.Collections.Hashtable")] - param( - [Parameter(ParameterSetName = "ByPath", Position = 0)] - [String[]] $Path, - - [Parameter(ParameterSetName = "ByLiteralPath", ValueFromPipelineByPropertyName = $true)] - [Alias("PSPath")] - [String[]] $LiteralPath - ) - - begin - { - function ThrowInvalidDataFile - { - param($resolvedPath, $extraError) - - $errorId = "CouldNotParseAsPowerShellDataFile$extraError" - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidData - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::CouldNotParseAsPowerShellDataFile -f $resolvedPath - $exception = [System.InvalidOperationException]::New($errorMessage) - $errorRecord = [System.Management.Automation.ErrorRecord]::New($exception, $errorId, $errorCategory, $null) - $PSCmdlet.WriteError($errorRecord) - } - } - - process - { - foreach($resolvedPath in (Resolve-Path @PSBoundParameters)) - { - $parseErrors = $null - $ast = [System.Management.Automation.Language.Parser]::ParseFile(($resolvedPath.ProviderPath), [ref] $null, [ref] $parseErrors) - if ($parseErrors.Length -gt 0) - { - ThrowInvalidDataFile $resolvedPath - } - else - { - $data = $ast.Find( { $args[0] -is [System.Management.Automation.Language.HashtableAst] }, $false ) - if($data) - { - $data.SafeGetValue() - } - else - { - ThrowInvalidDataFile $resolvedPath "NoHashtableRoot" - } - } - } - } -} - -## Converts a SDDL string into an object-based representation of a security -## descriptor -function ConvertFrom-SddlString -{ - [CmdletBinding(HelpUri = "https://go.microsoft.com/fwlink/?LinkId=623636")] - param( - ## The string representing the security descriptor in SDDL syntax - [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] - [String] $Sddl, - - ## The type of rights that this SDDL string represents, if any. - [Parameter()] - [ValidateSet( - "FileSystemRights", "RegistryRights", "ActiveDirectoryRights", - "MutexRights", "SemaphoreRights", "CryptoKeyRights", - "EventWaitHandleRights")] - $Type - ) - - Begin - { - # On CoreCLR CryptoKeyRights and ActiveDirectoryRights are not supported. - if ($PSEdition -eq "Core" -and ($Type -eq "CryptoKeyRights" -or $Type -eq "ActiveDirectoryRights")) - { - $errorId = "TypeNotSupported" - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errorMessage = [Microsoft.PowerShell.Commands.UtilityResources]::TypeNotSupported -f $Type - $exception = [System.ArgumentException]::New($errorMessage) - $errorRecord = [System.Management.Automation.ErrorRecord]::New($exception, $errorId, $errorCategory, $null) - $PSCmdlet.ThrowTerminatingError($errorRecord) - } - - ## Translates a SID into a NT Account - function ConvertTo-NtAccount - { - param($Sid) - - if($Sid) - { - $securityIdentifier = [System.Security.Principal.SecurityIdentifier] $Sid - - try - { - $ntAccount = $securityIdentifier.Translate([System.Security.Principal.NTAccount]).ToString() - } - catch{} - - $ntAccount - } - } - - ## Gets the access rights that apply to an access mask, preferring right types - ## of 'Type' if specified. - function Get-AccessRights - { - param($AccessMask, $Type) - - if ($PSEdition -eq "Core") - { - ## All the types of access rights understood by .NET Core - $rightTypes = [Ordered] @{ - "FileSystemRights" = [System.Security.AccessControl.FileSystemRights] - "RegistryRights" = [System.Security.AccessControl.RegistryRights] - "MutexRights" = [System.Security.AccessControl.MutexRights] - "SemaphoreRights" = [System.Security.AccessControl.SemaphoreRights] - "EventWaitHandleRights" = [System.Security.AccessControl.EventWaitHandleRights] - } - } - else - { - ## All the types of access rights understood by .NET - $rightTypes = [Ordered] @{ - "FileSystemRights" = [System.Security.AccessControl.FileSystemRights] - "RegistryRights" = [System.Security.AccessControl.RegistryRights] - "ActiveDirectoryRights" = [System.DirectoryServices.ActiveDirectoryRights] - "MutexRights" = [System.Security.AccessControl.MutexRights] - "SemaphoreRights" = [System.Security.AccessControl.SemaphoreRights] - "CryptoKeyRights" = [System.Security.AccessControl.CryptoKeyRights] - "EventWaitHandleRights" = [System.Security.AccessControl.EventWaitHandleRights] - } - } - $typesToExamine = $rightTypes.Values - - ## If they know the access mask represents a certain type, prefer its names - ## (i.e.: CreateLink for the registry over CreateDirectories for the filesystem) - if($Type) - { - $typesToExamine = @($rightTypes[$Type]) + $typesToExamine - } - - - ## Stores the access types we've found that apply - $foundAccess = @() - - ## Store the access types we've already seen, so that we don't report access - ## flags that are essentially duplicate. Many of the access values in the different - ## enumerations have the same value but with different names. - $foundValues = @{} - - ## Go through the entries in the different right types, and see if they apply to the - ## provided access mask. If they do, then add that to the result. - foreach($rightType in $typesToExamine) - { - foreach($accessFlag in [Enum]::GetNames($rightType)) - { - $longKeyValue = [long] $rightType::$accessFlag - if(-not $foundValues.ContainsKey($longKeyValue)) - { - $foundValues[$longKeyValue] = $true - if(($AccessMask -band $longKeyValue) -eq ($longKeyValue)) - { - $foundAccess += $accessFlag - } - } - } - } - - $foundAccess | Sort-Object - } - - ## Converts an ACE into a string representation - function ConvertTo-AceString - { - param( - [Parameter(ValueFromPipeline)] - $Ace, - $Type - ) - - process - { - foreach($aceEntry in $Ace) - { - $AceString = (ConvertTo-NtAccount $aceEntry.SecurityIdentifier) + ": " + $aceEntry.AceQualifier - if($aceEntry.AceFlags -ne "None") - { - $AceString += " " + $aceEntry.AceFlags - } - - if($aceEntry.AccessMask) - { - $foundAccess = Get-AccessRights $aceEntry.AccessMask $Type - - if($foundAccess) - { - $AceString += " ({0})" -f ($foundAccess -join ", ") - } - } - - $AceString - } - } - } - } - - Process - { - $rawSecurityDescriptor = [Security.AccessControl.CommonSecurityDescriptor]::new($false,$false,$Sddl) - - $owner = ConvertTo-NtAccount $rawSecurityDescriptor.Owner - $group = ConvertTo-NtAccount $rawSecurityDescriptor.Group - $discretionaryAcl = ConvertTo-AceString $rawSecurityDescriptor.DiscretionaryAcl $Type - $systemAcl = ConvertTo-AceString $rawSecurityDescriptor.SystemAcl $Type - - [PSCustomObject] @{ - Owner = $owner - Group = $group - DiscretionaryAcl = @($discretionaryAcl) - SystemAcl = @($systemAcl) - RawDescriptor = $rawSecurityDescriptor - } - } -} diff --git a/newton-cn/bin/v1.0/Modules/Microsoft.WSMan.Management/Microsoft.WSMan.Management.psd1 b/newton-cn/bin/v1.0/Modules/Microsoft.WSMan.Management/Microsoft.WSMan.Management.psd1 deleted file mode 100644 index 56bca97..0000000 --- a/newton-cn/bin/v1.0/Modules/Microsoft.WSMan.Management/Microsoft.WSMan.Management.psd1 +++ /dev/null @@ -1,16 +0,0 @@ -@{ -GUID="766204A6-330E-4263-A7AB-46C87AFC366C" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="3.0.0.0" -PowerShellVersion = '5.1' -CLRVersion="4.0" -AliasesToExport = @() -FunctionsToExport = @() -CmdletsToExport="Disable-WSManCredSSP", "Enable-WSManCredSSP", "Get-WSManCredSSP", "Set-WSManQuickConfig", "Test-WSMan", "Invoke-WSManAction", "Connect-WSMan", "Disconnect-WSMan", "Get-WSManInstance", "Set-WSManInstance", "Remove-WSManInstance", "New-WSManInstance", "New-WSManSessionOption" -NestedModules="Microsoft.WSMan.Management.dll" -FormatsToProcess="..\..\WSMan.format.ps1xml" -HelpInfoURI = 'https://go.microsoft.com/fwlink/?linkid=390788' -CompatiblePSEditions = @('Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedHostSettingTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedHostSettingTask_v1.0.cdxml deleted file mode 100644 index a40f80d..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedHostSettingTask_v1.0.cdxml +++ /dev/null @@ -1,86 +0,0 @@ - - - - 1.0 - DtcAdvancedHostSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - String - DWORD - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedSettingTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedSettingTask_v1.0.cdxml deleted file mode 100644 index 2be0a63..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcAdvancedSettingTask_v1.0.cdxml +++ /dev/null @@ -1,100 +0,0 @@ - - - - 1.0 - DtcAdvancedSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - String - DWORD - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterDefaultTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterDefaultTask_v1.0.cdxml deleted file mode 100644 index 035572f..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterDefaultTask_v1.0.cdxml +++ /dev/null @@ -1,46 +0,0 @@ - - - - 1.0 - DtcClusterDefault - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterTMMappingTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterTMMappingTask_v1.0.cdxml deleted file mode 100644 index ea48f2b..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcClusterTMMappingTask_v1.0.cdxml +++ /dev/null @@ -1,372 +0,0 @@ - - - - 1.0 - DtcClusterTMMapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcDefaultTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcDefaultTask_v1.0.cdxml deleted file mode 100644 index e6b9926..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcDefaultTask_v1.0.cdxml +++ /dev/null @@ -1,46 +0,0 @@ - - - - 1.0 - DtcDefault - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcLogTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcLogTask_v1.0.cdxml deleted file mode 100644 index bc14331..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcLogTask_v1.0.cdxml +++ /dev/null @@ -1,94 +0,0 @@ - - - - 1.0 - DtcLog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcNetworkSettingTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcNetworkSettingTask_v1.0.cdxml deleted file mode 100644 index 1ccbe4e..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcNetworkSettingTask_v1.0.cdxml +++ /dev/null @@ -1,130 +0,0 @@ - - - - 1.0 - DtcNetworkSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NoAuth - Incoming - Mutual - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTask_v1.0.cdxml deleted file mode 100644 index 2f6132c..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTask_v1.0.cdxml +++ /dev/null @@ -1,125 +0,0 @@ - - - - 1.0 - Dtc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BootStart - SystemStart - AutoStart - DemandStart - Disabled - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionTask_v1.0.cdxml deleted file mode 100644 index 00c2a1b..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionTask_v1.0.cdxml +++ /dev/null @@ -1,148 +0,0 @@ - - - - 1.0 - DtcTransaction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsStatisticsTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsStatisticsTask_v1.0.cdxml deleted file mode 100644 index 65ff3c7..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsStatisticsTask_v1.0.cdxml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 1.0 - DtcTransactionsStatistics - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSessionTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSessionTask_v1.0.cdxml deleted file mode 100644 index d3d0a32..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSessionTask_v1.0.cdxml +++ /dev/null @@ -1,80 +0,0 @@ - - - - 1.0 - DtcTransactionsTraceSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSettingTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSettingTask_v1.0.cdxml deleted file mode 100644 index df42497..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MSFT_DtcTransactionsTraceSettingTask_v1.0.cdxml +++ /dev/null @@ -1,70 +0,0 @@ - - - - 1.0 - DtcTransactionsTraceSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Formats.ps1xml b/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Formats.ps1xml deleted file mode 100644 index 9f1026d..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Formats.ps1xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - Dtc - - Microsoft.Management.Infrastructure.CimInstance#DtcInstance - - - - - - - DtcName - - - VirtualServerName - - - Status - - - OleTxEndpointCid - - - XAEndpointCid - - - UisEndpointCid - - - KtmRmEndpointCid - - - - - - - - DtcClusterTMMapping - - Microsoft.Management.Infrastructure.CimInstance#DtcClusterTMMapping - - - - - - - Name - - - ApplicationType - - - Application - - - Local - - - ClusterResourceName - - - - - - - - DtcTransactionsStatistics - - Microsoft.Management.Infrastructure.CimInstance#DtcTransactionsStatistics - - - - - - - Open - - - Committed - - - Aborted - - - ForcedAbort - - - InDoubt - - - Heuristic - - - SinglePhaseInDoubt - - - OpenMax - - - CommittedMax - - - AbortedMax - - - InDoubtMax - - - HeuristicMax - - - - - - - - DtcNetworkSetting - - Microsoft.Management.Infrastructure.CimInstance#DtcNetworkSettings - - - - - - - AuthenticationLevel - - - InboundTransactionsEnabled - - - OutboundTransactionsEnabled - - - RemoteClientAccessEnabled - - - RemoteAdministrationAccessEnabled - - - XATransactionsEnabled - - - LUTransactionsEnabled - - - - - - - - DtcTransactionInfo - - Microsoft.Management.Infrastructure.CimInstance#DtcTransactionInfo - - - - - - - TransactionId - - - Description - - - State - - - IsolationLevel - - - Parent - - - - - - - - DtcLog - - Microsoft.Management.Infrastructure.CimInstance#DtcLogFileSettings - - - - - - - Path - - - SizeInMB - - - MaxSizeInMB - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Types.ps1xml b/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Types.ps1xml deleted file mode 100644 index e0cac8c..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.Types.ps1xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - Microsoft.Dtc.PowerShell.Diagnostics.DtcDiagnosticTransaction - - - PsStandardMembers - - - DefaultDisplayProperty - Id - - - DefaultDisplayPropertySet - - Id - - - - DefaultKeyPropertySet - - Id - - - - - - - - Microsoft.Dtc.PowerShell.Diagnostics.DtcDiagnosticResourceManagerJob - - - PsStandardMembers - - - DefaultDisplayProperty - Name - - - DefaultDisplayPropertySet - - Name - InstanceId - - - - DefaultKeyPropertySet - - Name - InstanceId - State - Location - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.psd1 b/newton-cn/bin/v1.0/Modules/MsDtc/MsDtc.psd1 deleted file mode 100644 index 4459632b3ac730b7d5defebd6df7617636cb5070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4174 zcmb`KTTdEM5Xa}aNxuW(#Wty^Rcmcxs`1{aF^cVDgMgNZK-g8=G=89d$+o|lvkM$K ztjl6HyKpY^pZm-?|Nd^uZ+R`RWM3}iP+*r$HMx`}W}3;~hCG6%=v#6pvHXy(^o_%@wAkNg9PwVUR+4R7?b)}+ zOpAY=gkINfr3dGZ{E`!XZ{eb{7D4KP(Fgw;iDEs)BnJ*dL(CoI<#Un$km@JHL_>is>IwW(bC0(&d#pxMuUno+*^Sr zf{&{p4r$L~_SRxSBj7nSe}4#ZoBGtSS{hqSb!8Whu5-A0uG#WHUvf2Z2QSvBEgg8L zu^9GFnVMI^N@>5*daX6MIMNq*Y7Au|oS9v_)R(^5SYxka5^E<(Wzt>hftK}_EWF9O zl`U5~Sg$y}W_2H{WFh3!NGn7azs-(xfxQ}FWg$(nO3AWl59@cZZ+h-`%@l@@fsPX%7g6A6k+U&p)CEGWZXk)j+Dvs%$=cFIemKV8)wC$? zSc*Db^k&nBqt~bLwFt*p7R6+}eX2ajS$4@2y*|fqM5Z3iv-kPfD}pi}ds@ByPB4`6 z=}K6uJd*kyVwA&Z=O~Jwo~P0{PVu#$XxE;cTi?j<78V$0*7P#C&T{}pn=Yuid_}fi z81jalL-c+c+nMTvm7P=-Q9kfoBAU6^!1Um sV0yFG&Ub02s#8u0yYxBL&z-6D*10KfIE!dT=$+B|r7Ul)dp_FtKl6Ci=>Px# diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/TestDtc.psm1 b/newton-cn/bin/v1.0/Modules/MsDtc/TestDtc.psm1 deleted file mode 100644 index 066b3d7..0000000 --- a/newton-cn/bin/v1.0/Modules/MsDtc/TestDtc.psm1 +++ /dev/null @@ -1,752 +0,0 @@ -Import-Module netsecurity - -$Strings = DATA { - @{ - FirewallRuleEnabled = "{0}: Firewall rule for {1} is enabled." - FirewallRuleDisabled = "{0}: Firewall rule for {1} is disabled. This computer cannot participate in network transactions." - CmdletFailed = "The {0} cmdlet failed. Please make sure the {1} module is installed." - InvalidLocalComputer = "{0} is not a valid local computer name." - RPCEndpointMapper = "RPC Endpoint Mapper" - DtcIncomingConnection = "DTC incoming connections" - DtcOutgoingConnection = "DTC outgoing connections" - MatchingDtcNotFound = "A DTC instance with VirtualServerName {0} does not exist." - InboundDisabled = "{0}: Inbound transactions are not allowed and this computer cannot participate in network transactions." - OutboundDisabled = "{0}: Outbound transactions are not allowed and this computer cannot participate in network transactions." - OSVersion = "{0} Operating System Version: {1}." - OSQueryFailed = "Failed to query operating system of {0}." - VersionNotSupported = "Testing DTC on Windows versions below {0} is not supported with this cmdlet." - FailedToCreateCimSession = "Failed to create a CIM Session to {0}." - NotARemoteComputer = "{0} is not a remote computer." - PingingSucceeded = "Pinging computer {0} from {1} succeeded. " - PingingFailed = "Pinging computer {0} from {1} failed." - SameCids = "The {0} CID on {1} and {2} is the same. The CID should be unique to each computer." - DiagnosticTestPrompt = "This diagnostic test will attempt to carry out a transaction propagation between {0} and {1}. It requires that a TCP port is opened on {0} so that a Test Resource Manager can participate in network transactions." - DefaultPortDescription = "The default port is {0} and you can change it using the 'ResourceManagerPort' parameter and rerunning the test. " - PortDescription = "You have specified {0} as the 'ResourceManagerPort'." - FirewallRequest = "Please open port {0} in the firewall to proceed with the test." - QueryText = "Do you want to proceed with the test?" - InvalidDefaultCluster = "{0} is not the Virtual Server Name of the default DTC configured on this computer. You can use 'Set-DtcClusterDefault' cmdlet configure the default DTC on this computer." - InvalidDefault = "{0} is not the Virtual Server Name of the default DTC configured on this computer. You can use 'Set-DtcDefault' cmdlet to configure the default DTC on this computer." - NeedDtcSecurityFix = "DTC security settings and firewall settings should be fixed in order to complete the transactions propagation test." - StartResourceManagerFailed = "Test resource manager creation failed." - ResourceManagerStarted = "Test resource manager started." - PSSessionCreated = "A new PSSession to {0} created." - TransactionPropagated = "Transaction propagated from {0} to {1} using {2} propagation." - TransactionPropagationFailed = "Transaction propagation {0} to {1} failed using {2} propagation." - TestRMVerboseLog = "Test Resource Manager Verbose Log:" - TestRMWarningLog = "Test Resource Manager Warning Log:" - InvalidParameters = "At least one of LocalComputerName or RemoteComputerName parameters should be specified." - } -} - - -function IsLocalComputer -{ - param( - $computerName = $null - ) - PROCESS - { - $found = $false - $dtcs = Get-Dtc - if ($dtcs -eq $null) - { - throw - } - else - { - if ($dtcs.GetType().IsArray) - { - foreach ($dtc in $dtcs) - { - if ([string]::Compare($dtc.VirtualServerName, $computerName, $true) -eq 0) - { - $found = $true - break - } - } - } - else - { - if ([string]::Compare($dtcs.VirtualServerName, $computerName, $true) -eq 0) - { - $found = $true - } - } - } - return $found - } -} - -function CheckFirewallRule -{ - param( - $computerName = $null, - $ruleId = $null, - $ruleDesription = $null - ) - PROCESS - { - $success = $false - $errorVariable = $null - if ($computerName -eq $null) - { - $rule = Get-NetFirewallRule -ID $ruleId -ErrorVariable errorVariable - } - else - { - $rule = Get-NetFirewallRule -ID $ruleId -CimSession $computerName -ErrorVariable errorVariable - } - - if ($rule -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-NetFirewallRule", "networksecurity")) - } - - } - else - { - if ($rule.Enabled -eq 1) - { - Write-Verbose ([string]::Format($Strings.FirewallRuleEnabled, $computerName, $ruleDesription)) - $success = $true - } - else - { - Write-Warning ([string]::Format($Strings.FirewallRuleDisabled, $computerName, $ruleDesription)) - } - } - return $success - } -} - -function CheckFirewallRules -{ - param( - $ComputerName = $null - ) - $rpcEPRuleId = "MSDTC-RPCSS-In-TCP" - $dtcOutRule = "MSDTC-Out-TCP" - $dtcInRule = "MSDTC-In-TCP" - - $rpcOutcss = CheckFirewallRule $ComputerName $rpcEPRuleId $Strings.RPCEndpointMapper - $dtcIn = CheckFirewallRule $ComputerName $dtcInRule $Strings.DtcIncomingConnection - $dtcOut = CheckFirewallRule $ComputerName $dtcOutRule $Strings.DtcOutgoingConnection - - return ($rpcOutcss -and $dtcOutRule -and $dtcInRule) -} - -function FindDtc -{ - param( - $ComputerName = $null, - $CimSession = $null - ) - - $matchedDtc = $null - $errorVariable = $null - if ($cimsession -eq $null) - { - $dtcs = Get-Dtc -ErrorVariable $errorVariable - } - else - { - $dtcs = Get-Dtc -CimSession $CimSession -ErrorVariable errorVariable - } - - if ($dtcs -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-Dtc", "MSDTC")) - } - } - else - { - if ($dtcs.GetType().IsArray -eq $true) - { - foreach ($dtc in $dtcs) - { - if ($dtc.VirtualServerName -eq $computerName) - { - $matchedDtc = $dtc - break - } - } - } - else - { - $matchedDtc = $dtcs - } - } - - if ($matchedDtc -eq $null) - { - throw ([string]::Format($Strings.MatchingDtcNotFound, $computerName)) - } - - return $matchedDtc -} - -function CheckDtcSecurity -{ - param( - $DtcNetworkSetting = $null, - $ComputerName = $nul - ) - PROCESS - { - Write-Verbose ([string]::Format("{0}: AuthenticationLevel: {1}", $ComputerName, $DtcNetworkSetting.AuthenticationLevel)) - Write-Verbose ([string]::Format("{0}: InboundTransactionsEnabled: {1}", $ComputerName, $DtcNetworkSetting.InboundTransactionsEnabled)) - if ($DtcNetworkSetting.InboundTransactionsEnabled -eq $false) - { - Write-Warning ([string]::Format($Strings.InboundDisabled, $ComputerName)) - } - - Write-Verbose ([string]::Format("{0}: OutboundTransactionsEnabled: {1}", $ComputerName, $DtcNetworkSetting.OutboundTransactionsEnabled)) - if ($DtcNetworkSetting.OutboundTransactionsEnabled -eq $false) - { - Write-Warning ([string]::Format($Strings.OutboundDisabled, $ComputerName)) - } - - Write-Verbose ([string]::Format("{0}: RemoteClientAccessEnabled: {1}", $ComputerName, $DtcNetworkSetting.RemoteClientAccessEnabled)) - Write-Verbose ([string]::Format("{0}: RemoteAdministrationAccessEnabled: {1}", $ComputerName, $DtcNetworkSetting.RemoteAdministrationAccessEnabled)) - Write-Verbose ([string]::Format("{0}: XATransactionsEnabled: {1}", $ComputerName, $DtcNetworkSetting.XATransactionsEnabled)) - Write-Verbose ([string]::Format("{0}: LUTransactionsEnabled: {1}", $ComputerName, $DtcNetworkSetting.LUTransactionsEnabled)) - - return $DtcNetworkSetting.InboundTransactionsEnabled -and $DtcNetworkSetting.OutboundTransactionsEnabled - } -} - - -function DoPingTest -{ - param( - $ToComputerName = $null, - $FromComputerName = $null - ) - - - $filter = "Address='$ToComputerName'" - $pingingResult = Get-WmiObject -Class Win32_PingStatus -Filter $filter -ComputerName $FromComputerName - - if ($pingingResult.StatusCode -eq 0) - { - Write-Verbose ([string]::Format($Strings.PingingSucceeded, $ToComputerName, $FromComputerName)) - return $true; - } - else - { - Write-Warning ([string]::Format($Strings.PingingFailed, $ToComputerName, $FromComputerName)) - return $false; - } -} - -function CompareCids -{ - param( - $LocalDtc = $null, - $RemoteDtc = $null - ) - - Write-Verbose ([string]::Format("{0}: OleTx: {1}", $LocalDtc.VirtualServerName, $LocalDtc.OleTxEndpointCid)) - Write-Verbose ([string]::Format("{0}: OleTx: {1}", $RemoteDtc.VirtualServerName, $RemoteDtc.OleTxEndpointCid)) - if ([string]::Compare($LocalDtc.OleTxEndpointCid, $RemoteDtc.OleTxEndpointCid, $true) -eq 0) - { - throw ([string]::Format($Strings.SameCids, "OleTx", $LocalDtc.VirtualServerName, $RemoteDtc.VirtualServerName)) - } - Write-Verbose ([string]::Format("{0}: XA: {1}", $LocalDtc.VirtualServerName, $LocalDtc.XAEndpointCid)) - Write-Verbose ([string]::Format("{0}: XA: {1}", $RemoteDtc.VirtualServerName, $RemoteDtc.XAEndpointCid)) - if ([string]::Compare($LocalDtc.XAEndpointCid, $RemoteDtc.XAEndpointCid, $true) -eq 0) - { - throw ([string]::Format($Strings.SameCids, "XA", $LocalDtc.VirtualServerName, $RemoteDtc.VirtualServerName)) - } - Write-Verbose ([string]::Format("{0}: UIS: {1}", $LocalDtc.VirtualServerName, $LocalDtc.UisEndpointCid)) - Write-Verbose ([string]::Format("{0}: UIS: {1}", $RemoteDtc.VirtualServerName, $RemoteDtc.UisEndpointCid)) - if ([string]::Compare($LocalDtc.UisEndpointCid, $RemoteDtc.UisEndpointCid, $true) -eq 0) - { - throw ([string]::Format($Strings.SameCids, "UIS", $LocalDtc.VirtualServerName, $RemoteDtc.VirtualServerName)) - } -} - -function CheckIfDefaultDtcConfigured -{ - param( - $ComputerName = $null, - $Cimsession = $null - ) - - $errorVariable = $null - $cluster = $false - if ($Cimsession -eq $null) - { - $dtcs = Get-Dtc -ErrorVariable errorVariable - } - else - { - $dtcs = Get-Dtc -ErrorVariable errorVariable -CimSession $Cimsession - } - - if ($dtcs -eq $null) - { - if ($errorvariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-Dtc","MSDTC")) - } - } - $errorVariable = $null - if ($dtcs.GetType().IsArray) - { - $cluster = $true - if ($Cimsession -eq $null) - { - $defaultDtc = Get-DtcClusterDefault -ErrorVariable errorVariable - } - else - { - $defaultDtcResource = Get-DtcClusterDefault -ErrorVariable errorVariable -CimSession $Cimsession - } - - foreach ($dtc in $dtcs) - { - if ([string]::Compare($dtc.DtcName, $defaultDtcResource, $true) -eq 0) - { - $defaultDtc = $dtc.VirtualServerName - } - } - - } - elseif ([string]::Compare($dtcs.DtcName, "Local", $true) -ne 0) - { - $cluster = $true - #there is only one dtc instance and it is clustered - $defaultDtc = $dtc.VirtualServerName - } - else - { - - if ($Cimsession -eq $null) - { - $defaultDtc = Get-DtcDefault -ErrorVariable errorVariable - } - else - { - $defaultDtc = Get-DtcDefault -ErrorVariable errorVariable -CimSession $Cimsession - } - - } - - if ($defaultDtc -eq $null) - { - if ($errorvariable -ne $null) - { - throw $errorVariable - } - else - { - if ($cluster -eq $true) - { - throw ([string]::Format($Strings.CmdletFailed, "Get-DtcClusterDefault", "MSDTC")) - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-DtcDefault", "MSDTC")) - } - } - } - else - { - if ([string]::Compare($defaultDtc, $ComputerName, $true) -ne 0) - { - if ($cluster -eq $true) - { - throw ([string]::Format($Strings.InvalidDefaultCluster, $ComputerName)) - } - else - { - throw ([string]::Format($Strings.InvalidDefault, $ComputerName)) - } - } - } -} - -function DoPingTest -{ - param( - $ToComputerName = $null, - $FromComputerName = $null - ) - - $filter = "Address='$ToComputerName'" - $pingingResult = Get-WmiObject -Class Win32_PingStatus -Filter $filter -ComputerName $FromComputerName - - if ($pingingResult.StatusCode -eq 0) - { - Write-Verbose ([string]::Format($Strings.PingingSucceeded, $ToComputerName, $FromComputerName)) - return $true; - } - else - { - Write-Warning ([string]::Format($Strings.PingingFailed, $ToComputerName, $FromComputerName)) - return $false; - } -} - -function IsVersionSupported -{ - param( - $ComputerName = $null - ) - - $minSupportedVersion = New-Object -TypeName System.Version -ArgumentList "6.2" - $errorVariable = $null - $operatngSystem = Get-WmiObject -ComputerName $ComputerName -Class WIn32_OperatingSystem -ErrorVariable errorVariable - if ($operatngSystem -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.OSQueryFailed, $ComputerName)) - } - } - else - { - $version = New-Object -TypeName System.Version -ArgumentList $operatngSystem.Version - Write-Verbose ([string]::Format($Strings.OSVersion, $ComputerName, $version)) - if ($version -ge $minSupportedVersion) - { - return $true; - } - else - { - return $false; - } - } -} - -function TestLocalComputer -{ - param( - $ComputerName = $null - ) - PROCESS - { - $errorVariable = $null - $firewallOK = CheckFirewallRules $null - $dtc = FindDtc $ComputerName $null - $networkSetting = Get-DtcNetworkSetting -DtcName $dtc.DtcName -ErrorVariable errorVariable - if ($networkSetting -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-DtcNetworkSetting", "MSDTC")) - } - } - $networkOk = CheckDtcSecurity $networkSetting $ComputerName - return $networkOk -and $firewallOK - } -} - -function TestRemoteComputer -{ - param( - $ComputerName = $null, - $CimSession = $null - ) - PROCESS - { - if ((IsVersionSupported $ComputerName) -eq $false) - { - throw ([string]::Format($Strings.VersionNotSupported, "6.2")) - } - - $firewallOK = CheckFirewallRules $ComputerName - $dtc = FindDtc $ComputerName $CimSession - $networkSetting = Get-DtcNetworkSetting -DtcName $dtc.DtcName -CimSession $CimSession -ErrorVariable errorVariable - if ($networkSetting -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.CmdletFailed, "Get-DtcNetworkSetting", "MSDTC")) - } - } - - $networkOk = CheckDtcSecurity $networkSetting $ComputerName - return $networkOk -and $firewallOK - - } -} - -function TestTransactionsPropagation -{ - param( - $LocalComputerName = $null, - $RemoteComputerName = $null, - $ResourceManagerPort = $null - ) - - $rm = $null; - $pssession = $null; - try - { - $errorVariable - $rm = Start-DtcDiagnosticResourceManager -Port $ResourceManagerPort -ErrorVariable errorVariable - if ($rm -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.StartResourceManagerFailed)) - } - } - - Write-Verbose $Strings.ResourceManagerStarted - - $pssession = New-PSSession -ComputerName $RemoteComputerName - Write-Verbose ([string]::Format($Strings.PSSessionCreated, $RemoteComputerName)) - - - Invoke-Command -Session $pssession -ScriptBlock {Import-Module msdtc} -ErrorVariable errorVariable - if ($errorVariable -ne $null) - { - throw $errorVariable - } - - $errorVariable = $null - $tx = Invoke-Command -Session $pssession -ScriptBlock {Receive-DtcDiagnosticTransaction -ComputerName $args[0] -Port $args[1] -PropagationMethod Pull} -args $LocalComputerName,$ResourceManagerPort -ErrorVariable errorVariable - - if ($tx -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.TransactionPropagationFailed, $LocalComputerName, $RemoteComputerName, "PULL")) - } - } - - Write-Verbose ([string]::Format($Strings.TransactionPropagated, $LocalComputerName, $RemoteComputerName, "PULL")) - - $tx = $null - $tx=Invoke-Command -Session $pssession -ScriptBlock {Receive-DtcDiagnosticTransaction -ComputerName $args[0] -Port $args[1] -PropagationMethod Push} -args $LocalComputerName,$ResourceManagerPort -ErrorVariable errorVariable - if ($tx -eq $null) - { - if ($errorVariable -ne $null) - { - throw $errorVariable - } - else - { - throw ([string]::Format($Strings.TransactionPropagationFailed, $LocalComputerName, $RemoteComputerName, "PUSH")) - } - } - - Write-Verbose ([string]::Format($Strings.TransactionPropagated, $LocalComputerName, $RemoteComputerName, "PUSH")) - } - finally - { - if ($rm -ne $null) - { - Write-Verbose $Strings.TestRMVerboseLog - foreach ( $verbose in $rm.Verbose) - { - Write-Verbose $verbose - } - - if ($rm.Warning -ne $null) - { - Write-Warning $Strings.TestRMWarningLog - foreach ( $warning in $rm.Warning) - { - Write-Warning $warning - } - } - Stop-DtcDiagnosticResourceManager -Job $rm - } - - if ($pssession -ne $null) - { - Remove-PSSession $pssession - } - } -} - -# .Link -# http://go.microsoft.com/fwlink/?LinkID=253754 -# .ExternalHelp TestDtc.psm1-help.xml -function Test-Dtc { - [CmdletBinding( - SupportsShouldProcess=$true, - ConfirmImpact="Low" - )] - [cmdletbinding(PositionalBinding=$false)] - - param( - [ValidateNotNullOrEmpty()] - [string] - $LocalComputerName = $null, - - [ValidateNotNullOrEmpty()] - [string] - $RemoteComputerName = $null, - - [ValidateNotNullOrEmpty()] - [int] - [ValidateRange(0, 65535)] - $ResourceManagerPort = $null - ) - BEGIN { - } - PROCESS { - Import-LocalizedData -bindingVariable Strings -ErrorAction SilentlyContinue - - if ([string]::IsNullOrEmpty($LocalComputerName)) - { - if ([string]::IsNullOrEmpty($RemoteComputerName)) - { - throw $Strings.InvalidParameters - } - else - { - if (IsLocalComputer $RemoteComputerName) - { - throw ([string]::Format($Strings.NotARemoteComputer, $RemoteComputerName)) - } - - $errorvariabe = $null - $cimSession = New-CimSession -ComputerName $RemoteComputerName - if ($cimSession -eq $null) - { - throw ([string]::Format($Strings.FailedToCreateCimSession, $ComputerName)) - } - try - { - $remoteTest = TestRemoteComputer $RemoteComputerName $cimSession - } - finally - { - Remove-CimSession -CimSession $cimSession - } - } - } - else - { - if ([string]::IsNullOrEmpty($RemoteComputerName)) - { - if (IsLocalComputer $LocalComputerName) - { - $localTest = TestLocalComputer $LocalComputerName - } - else - { - throw ([string]::Format($Strings.InvalidLocalComputer, $LocalComputerName)) - } - } - else - { - if ((IsLocalComputer $LocalComputerName) -eq $false) - { - throw ([string]::Format($Strings.InvalidLocalComputer, $LocalComputerName)) - } - - $DefaultResourceManagerPort = 3002 - $remoteComputerTestable = $false - $localToRemotePinging = $false - $remoteToLocalPinging = $false - $localComputerTestable = $false - $port = $DefaultResourceManagerPort - - $localComputerTestable = TestLocalComputer $LocalComputerName - - if (IsLocalComputer $RemoteComputerName) - { - throw ([string]::Format($Strings.NotARemoteComputer, $RemoteComputerName)) - } - - $errorvariabe = $null - $cimSession = New-CimSession -ComputerName $RemoteComputerName - if ($cimSession -eq $null) - { - throw ([string]::Format($Strings.FailedToCreateCimSession, $RemoteComputerName)) - } - - try - { - $remoteComputerTestable = TestRemoteComputer $RemoteComputerName $cimSession - - $localToRemotePinging = DoPingTest $LocalComputerName $RemoteComputerName - $remoteToLocalPinging = DoPingTest $RemoteComputerName $LocalComputerName - $localDtc = FindDtc $LocalComputerName $null - $remoteDtc = FindDtc $RemoteComputerName $cimSession - CompareCids $localDtc $remoteDtc - - if (($localComputerTestable -and $remoteComputerTestable -and $localToRemotePinging -and $remoteToLocalPinging) -eq $false) - { - throw $Strings.NeedDtcSecurityFix - } - - $diagnosticTestPrompt = ([string]::Format($Strings.DiagnosticTestPrompt, $LocalComputerName, $RemoteComputerName)) - $portDescription = $null - if ($ResourceManagerPort -eq $null) - { - $portDescription = ([string]::Format($Strings.DefaultPortDescription, $port)) - } - else - { - $port = $ResourceManagerPort - $portDescription = ([string]::Format($Strings.PortDescription, $port)) - } - - $firewallRequest = ([string]::Format($Strings.FirewallRequest, $port)) - $completePrompt = ([string]::Format("{0} {1} {2}", $diagnosticTestPrompt, $portDescription, $firewallRequest)) - - if ($pscmdlet.ShouldProcess($completePrompt, $Strings.QueryText, $completePrompt)) - { - CheckIfDefaultDtcConfigured $LocalComputerName $null - CheckIfDefaultDtcConfigured $RemoteComputerName $cimSession - TestTransactionsPropagation $LocalComputerName $RemoteComputerName $port - } - - - } - finally - { - Remove-CimSession -CimSession $cimSession - } - - } - } - } - END { - } -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/ko-KR/TestDtc.psd1 b/newton-cn/bin/v1.0/Modules/MsDtc/ko-KR/TestDtc.psd1 deleted file mode 100644 index a6bc5278b80ac21b480dbe5e76e6c54d4d54e936..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4620 zcmcgwPiUKE9R3YuwV& zc$l!m4jw%0;2<3}jhf61n%Lw^q13Kj20{)Va@e7QhYC9k^?BYmU*9ij+71UJ&SH7f=3eWo>J1i0L;X8n*W4H=J)|2wMbisxZ z`3!H2kpL_t9$pL- z;%MKYzH+v8b*gA>FbFC6{zf6e=gk@aQez?k%~Q_hI4yqfPSo)i|IC)M&3PB4;Nrrr2n7I<0a!-iDYwpWl;?rj+z2*OpxWiN(bf_4{(a$G!15B|TsX zV;qFsQO&dn7#+aX*oF@CmXh1KQetg2>Lgd-X=-xS;AHqrn+LRghF6BsBakrwYlrY; zMBD2_9(2LZGEivFGcteWW@27RC$)cr6>A17xv{mRD>D+SmP7lQW1nb$m^r*U0f~&{ zDCE;$qW3=DV8%^g#W1plsG2N1fjeh$P1FqIqr|Ubebl*{J$UPCR$`lZLnO{@XxX0G zQD;v&kuN1ID?6d3P`s9R`Fz9~yYcW`HkdxBRleM>V9}$os~0gK>R}H@4Bko-`CWM& z7n=%7E~a-EY|U{qU}SQdS&in0!V$Gxr*K@ z)3MYghu-hpho_wR*$RvPVAtq@t!t~v70Ox9HRGKrCy}d%Pe?unLY!bCSY`6o z2abh-6z8cijhfq&+OOY3%qZES^QGg?5iL3o!jLk7wd5=N3#Xz%oR4qFZ(&zUHNm#I zbYqr?aQ^WZ*WiKG!25IQn=yZpcv|$z@e*(<18cViOgS!34Ci+CvE)VH#)kjbL6klSZ}PYMaOsZ`WWYwmh-+P_Nex@`m%O(R#`nQlG(7C6wHX~49>8t(39c!yDH z%r+G2Rb%ea%npnFa_c%#+lT7cNXB{V&b++_Yl%Cf)YrlKS;~InG$sl)dmio_t0xKX zq~YEBn101wUjezXd7V39)N1HMCbD{Rw`X?-rfZGqn#$STwcqqn+ly?bn7(Q%jOkyk za>QxFzQ^`3W)r*EW&c?y!_R{S*7{cGISP*LGMX&tQVzRY>IKXO;MiS7vl?MHj1=rS<+D M;k_38o5J7!0HS1-vj6}9 diff --git a/newton-cn/bin/v1.0/Modules/MsDtc/ko/Microsoft.Dtc.PowerShell.Resources.dll b/newton-cn/bin/v1.0/Modules/MsDtc/ko/Microsoft.Dtc.PowerShell.Resources.dll deleted file mode 100644 index 26e5061a5d0eb7e1389c1237c579b7a8f352453e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14848 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 jwjmcJsq_Oaq$~Ttl)t - - - - - Default - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter - - - - - - 25 - - - - 39 - - - - 7 - Left - - - - 12 - - - - 17 - - - - 14 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterInstanceID $_.InterfaceDescription 39 - - - - InterfaceIndex - Right - - - Status - - - MacAddress - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $_.TransmitLinkSpeed - - Right - - - - - - - - MSFT_NetAdapter_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter - - - - - - - - Name - - - - InterfaceDescription - - - - InterfaceIndex - - - - MacAddress - - - - MediaType - - - - PhysicalMediaType - - - - ifOperStatus - - - - AdminStatus - - - - - $_.TransmitLinkSpeed -lt 1000000000 - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $_.TransmitLinkSpeed / 1000000 - Format-LinkSpeed $val 1 $false - - - - - $_.TransmitLinkSpeed -ge 1000000000 - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $_.TransmitLinkSpeed / 1000000000 - Format-LinkSpeed $val 1 $false - - - - - MediaConnectionState - - - - ConnectorPresent - - - - $_.VlanID -ne $null - - VlanID - - - - DriverInformation - - - - - - - - Names - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter - - - - - - 25 - - - - 35 - - - - 7 - - - - 15 - - - - 33 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterInstanceID $_.InterfaceDescription 35 - - - - ifIndex - {0,7} - - - NetLuid - 0x{0:X} - - - DeviceID - - - - - - - - Driver - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter - - - - - - 25 - - - - 40 - - - - 15 - - - - 10 - - - - 13 - - - - 11 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterInstanceID $_.InterfaceDescription 40 - - - - DriverFileName - - - DriverDate - - - DriverVersion - - - NdisVersion - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapter.cmdletDefinition.cdxml deleted file mode 100644 index 3847758..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapter.cmdletDefinition.cdxml +++ /dev/null @@ -1,258 +0,0 @@ - - - - 1.0 - NetAdapter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.Format.ps1xml deleted file mode 100644 index 6992ff3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.Format.ps1xml +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - MSFT_NetAsapterAdvProperty_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterAdvancedPropertySettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterAdvancedPropertySettingData - - - - - - 25 - - - - 30 - - - - 30 - - - - 15 - - - - 15 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - - if ($_.DisplayName -ne $null) - { - $out = $_.DisplayName - } - else - { - $out = "--" - } - $out - - - - - - if ($_.DisplayValue -ne $null) - { - $out = $_.DisplayValue - } - else - { - $out = "--" - } - $out - - - - RegistryKeyword - - - - if (($_.RegistryValue) -and ($_.RegistryValue.length -ge 1)) - { - if ($_.RegistryValue.length -eq 1) - { - $out = "{$($_.RegistryValue[0])}" - } - else - { - $out = "{'"+($_.RegistryValue -join "', '")+"'}" - } - } - else - { - $out = "{--}" - } - $out; - - - - - - - - - Advanced - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterAdvancedPropertySettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterAdvancedPropertySettingData - - - - - - 25 - - - - 25 - - - - 20 - - - - 26 - - - - 20 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - DisplayName - - - DisplayValue - - - - $out = if ($_.DisplayParameterType -eq 5) - { - $_.ValidDisplayValues - } - if (($_.DisplayParameterType -eq 1) -or - ($_.DisplayParameterType -eq 2) -or - ($_.DisplayParameterType -eq 3) -or - ($_.DisplayParameterType -eq 4)) - { - "Min $($_.NumericParameterMinValue), Max $($_.NumericParameterMaxValue), " - "Step $($_.NumericParameterStepValue)" - - } - if ($_.DisplayParameterType -eq 6) - { - "" - } - $out - - - - DefaultDisplayValue - - - - - - - - MSFT_NetAsapterAdvProperty_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterAdvancedPropertySettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterAdvancedPropertySettingData - - - - - - - - Name - - - - InterfaceDescription - - - - DisplayName - - - - DisplayValue - - - - DefaultDisplayValue - - - - ValidDisplayValues - - - - RegistryKeyword - - - - RegistryValue - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.cmdletDefinition.cdxml deleted file mode 100644 index c8b64d8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterAdvancedProperty.cmdletDefinition.cdxml +++ /dev/null @@ -1,287 +0,0 @@ - - - - 1.0 - NetAdapterAdvancedProperty - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.Format.ps1xml deleted file mode 100644 index 6795664..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.Format.ps1xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - MSFT_NetAsapterBinding_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterBindingSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterBindingSettingData - - - - - - 30 - - - - 50 - - - - 20 - - - - 12 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - DisplayName - - - ComponentID - - - - $out="" - $out = if($_.Enabled -eq $true) {"True"} else {"False"} - $out - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.cmdletDefinition.cdxml deleted file mode 100644 index c898d58..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterBinding.cmdletDefinition.cdxml +++ /dev/null @@ -1,197 +0,0 @@ - - - - 1.0 - NetAdapterBinding - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.Format.ps1xml deleted file mode 100644 index 3e383f5..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.Format.ps1xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - MSFT_NetAsapterChecksumOffload_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterChecksumOffloadSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterChecksumOffloadSettingData - - - - - 30 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - - - - - Name - - - IpIPv4Enabled - - - TcpIPv4Enabled - - - TcpIPv6Enabled - - - UdpIPv4Enabled - - - UdpIPv6Enabled - - - - - - - - MSFT_NetAsapterChecksumOffload_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterChecksumOffloadSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterChecksumOffloadSettingData - - - - - - - Name - - - InterfaceDescription - - - IpIPv4Enabled - - - TcpIPv4Enabled - - - TcpIPv6Enabled - - - UdpIPv4Enabled - - - UdpIPv6Enabled - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4TransmitIpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4TransmitTcpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4TransmitTcpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4TransmitUdpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4TransmitIpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4ReceiveIpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4ReceiveTcpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4ReceiveTcpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4ReceiveUdpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv4ReceiveIpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6TransmitIpExtensionHeadersSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6TransmitTcpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6TransmitTcpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6TransmitUdpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6ReceiveIpExtensionHeadersSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6ReceiveTcpOptionsSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6ReceiveTcpChecksumSupported - - - - $_.ChecksumOffloadHardwareCapabilities.IPv6ReceiveUdpChecksumSupported - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.cdxml deleted file mode 100644 index 5598506..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterChecksumOffload.cdxml +++ /dev/null @@ -1,258 +0,0 @@ - - - - 1.0 - NetAdapterChecksumOffload - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.Format.ps1xml deleted file mode 100644 index 3a96ad8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.Format.ps1xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - MSFT_NetAsapterEncapsulatedPacketTaskOffload_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData - - - - - 30 - - - - 20 - - - - 20 - - - - - - - Name - - - NvgreEncapsulatedPacketTaskOffloadEnabled - - - VxlanEncapsulatedPacketTaskOffloadEnabled - - - - - - - - MSFT_NetAsapterEncapsulatedPacketTaskOffload_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData - - - - - - - Name - - - InterfaceDescription - - - - NvgreEncapsulatedPacketTaskOffloadEnabled - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre.TransmitChecksumOffloadSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre.ReceiveChecksumOffloadSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre.LsoV2Supported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre.RssSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre.VmqSupported - - - - - VxlanEncapsulatedPacketTaskOffloadEnabled - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.TransmitChecksumOffloadSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.ReceiveChecksumOffloadSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.LsoV2Supported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.RssSupported - - - - - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterEncapsulatedPacketTaskOffload.OffloadType]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.VmqSupported - - - - - - [System.Boolean]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.IsVxlanUDPPortConfigurable - - - - - - [System.UInt16]$_.EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan.VxlanUDPPortNumber - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.cdxml deleted file mode 100644 index 172f358..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterEncapsulatedPacketTaskOffload.cdxml +++ /dev/null @@ -1,180 +0,0 @@ - - - - 1.0 - NetAdapterEncapsulatedPacketTaskOffload - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.Format.ps1xml deleted file mode 100644 index 406127e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.Format.ps1xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - MSFT_NetAsapterHardwareInfo_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterHardwareInfoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterHardwareInfoSettingData - - - - - - 30 - - - - 7 - Left - - - - 3 - Left - - - - 6 - Left - - - - 8 - Left - - - - 4 - Left - - - - 8 - Left - - - - 13 - Left - - - - 13 - Left - - - - 7 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - SegmentNumber - Right - - - BusNumber - Right - - - DeviceNumber - Right - - - FunctionNumber - Right - - - SlotNumber - Right - - - NumaNode - Right - - - PcieLinkSpeed - Right - - - PciExpressCurrentLinkWidth - Right - - - Version - - - - - - - - MSFT_NetAsapterHardwareInfo_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterHardwareInfoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterHardwareInfoSettingData - - - - - - - - Name - - - - InterfaceDescription - - - - DeviceType - - - - SegmentNumber - - - - BusNumber - - - - DeviceNumber - - - - FunctionNumber - - - - SlotNumber - - - - NumaNode - - - - PciCurrentSpeedAndMode - - - - PcieLinkSpeed - - - - PciExpressCurrentLinkWidth - - - - PcieMaxLinkSpeed - - - - PciExpressMaxLinkWidth - - - - Version - - - - LineBasedInterruptSupported - - - - MsiInterruptSupported - - - - MsiXInterruptSupported - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.cmdletDefinition.cdxml deleted file mode 100644 index f6c02c6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterHardwareInfo.cmdletDefinition.cdxml +++ /dev/null @@ -1,30 +0,0 @@ - - - - 1.0 - NetAdapterHardwareInfo - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.Format.ps1xml deleted file mode 100644 index df0e930..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.Format.ps1xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - MSFT_NetAdapterIPsecOffload_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterIPsecOffloadV2SettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterIPsecOffloadV2SettingData - - - - - 30 - - - 15 - - - 25 - - - - - - - Name - - - Enabled - - - SaOffloadCapacityEnabled - - - - - - - - MSFT_NetAdapterIPsecOffload_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterIPsecOffloadV2SettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterIPsecOffloadV2SettingData - - - - - - - Name - - - InterfaceDescription - - - Source - - - AhEnabled - - - AhEspCombinedEnabled - - - AhEspCombinedSupported - - - AhSupported - - - AuthenticationAlgorithmsEnabled - - - AuthenticationAlgorithmsSupported - - - Enabled - - - EncryptionAlgorithmsEnabled - - - EncryptionAlgorithmsSupported - - - EspEnabled - - - EspSupported - - - IPv4OptionsEnabled - - - IPv4OptionsSupported - - - IPv6Enabled - - - IPv6NonIPsecExtensionHeadersEnabled - - - IPv6NonIPsecExtensionHeadersSupported - - - IPv6Supported - - - LsoEnabled - - - LsoSupported - - - SaOffloadCapacityEnabled - - - SaOffloadCapacitySupported - - - TransportEnabled - - - TransportSupported - - - TunnelEnabled - - - TunnelSupported - - - UdpEspEnabled - - - UdpEspSupported - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.cdxml deleted file mode 100644 index 49cea8b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterIPsecOffload.cdxml +++ /dev/null @@ -1,196 +0,0 @@ - - - - 1.0 - NetAdapterIPsecOffload - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.Format.ps1xml deleted file mode 100644 index ff2af1c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.Format.ps1xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - MSFT_NetAsapterLso_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterLsoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterLsoSettingData - - - - - 30 - - - - 15 - - - 14 - - - 12 - - - 12 - - - - - - - Name - - - - $out="" - if ($_.MaximumLsoVersionSupported -ge 2) {$out+="LSO Version 2"} else { if ($_.MaximumLsoVersionSupported -eq 1) {$out+="LSO Version 1"} else {$out+="None"} } - $out - - - - V1IPv4Enabled - - - IPv4Enabled - - - IPv6Enabled - - - - - - - - MSFT_NetAsapterLso_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterLsoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterLsoSettingData - - - - - - - Name - - - InterfaceDescription - - - - - $out="" - if ($_.MaximumLsoVersionSupported -ge 2) {$out+="LSO Version 2"} else { if ($_.MaximumLsoVersionSupported -eq 1) {$out+="LSO Version 1"} else {$out+="None"} } - $out - - - - V1IPv4Enabled - - - IPv4Enabled - - - IPv6Enabled - - - - $_.LargeSendOffloadV1HardwareCapabilities.IPv4MaxOffloadSizeSupported - - - - $_.LargeSendOffloadV1HardwareCapabilities.IPv4MinSegmentCountSupported - - - - $_.LargeSendOffloadV1HardwareCapabilities.IPv4TcpOptionsSupported - - - - $_.LargeSendOffloadV1HardwareCapabilities.IPv4IpOptionsSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv4MaxOffloadSizeSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv4MinSegmentCountSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv6MaxOffLoadSizeSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv6MinSegmentCountSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv6IpExtensionHeadersSupported - - - - $_.LargeSendOffloadV2HardwareCapabilities.IPv6TcpOptionsSupported - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.cdxml deleted file mode 100644 index 9011f42..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterLso.cdxml +++ /dev/null @@ -1,191 +0,0 @@ - - - - 1.0 - NetAdapterLso - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.Format.ps1xml deleted file mode 100644 index 21037f8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.Format.ps1xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - MSFT_NetAdapterPacketDirectSettingData_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimv2\MSFT_NetAdapterPacketDirectSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPacketDirectSettingData - - - - - - 12 - - - - 20 - - - - 8 - - - - 12 - - - - 10 - - - - 15 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 12 - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterInstanceID $_.InterfaceDescription 20 - - - - Enabled - - - Operational - - - DomainId - - - - [Convert]::ToString($_.DiagnosticCode, 16) - - - - - - - - - - MSFT_NetAdapterPacketDirectSettingData_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPacketDirectSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPacketDirectSettingData - - - - - - - Name - - - Enabled - - - Operational - - - DomainId - - - - - [Convert]::ToString($_.DiagnosticCode, 16) - - - - - - ($_.Capabilities|fl|out-string).Trim() - - - - - - - - - - MSFT_NetAdapter_PacketDirectCapabilities - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter_PacketDirectCapabilities - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_PacketDirectCapabilities - - - - - - - DrainNotificationSupported - - - ModerationByIntervalSupported - - - ModerationByCountSupported - - - MinimumModerationInterval - - - MaximumModerationInterval - - - ModerationIntervalGranularity - - - MaximumTxPartialBufferCount - - - MaximumRxPartialBufferCount - - - MaximumNumberOfRxQueues - - - MaximumNumberOfTxQueues - - - MaximumNumberOfRxQueuesForDefaultVPort - - - MaximumNumberOfTxQueuesForDefaultVPort - - - MaximumNumberOfRxQueuesPerNonDefaultVPort - - - MaximumNumberOfTxQueuesPerNonDefaultVPort - - - MaximumRxQueueSize - - - MaximumTxQueueSize - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.cdxml deleted file mode 100644 index 6cee482..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPacketDirect.cdxml +++ /dev/null @@ -1,161 +0,0 @@ - - - - 1.0 - NetAdapterPacketDirect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.Helper.psm1 b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.Helper.psm1 deleted file mode 100644 index 1d281ce..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.Helper.psm1 +++ /dev/null @@ -1,166 +0,0 @@ -<# - -Copyright (c) 2011 Microsoft Corporation. All Rights Reserved. - -Module Name: - - MSFT_NetAdapterPowerManagement.Format.Helper.psm1 - -Description: - - Provides helper routines for formatting the output of - NetAdapterPowerManagement CmdLets. - -#> - -function Format-NdisConfigurationValue() - -<# - -Function Description: - - Converts an enumerated configuration value into human readable text. - -Arguments: - - $ConfigurationValue - Supplies the configuration value to format. - -Return Value: - - Returns a string corresponding to the integer configuration value. - -#> - -{ - param ($ConfigurationValue) - - switch ($ConfigurationValue) - { - 0 { $temp = "Unsupported" } - 1 { $temp = "Disabled" } - 2 { $temp = "Enabled" } - 3 { $temp = "Inactive" } - default { $temp = "Invalid ($($ConfigurationValue))" } - } - - return $temp -} - -function Format-WakePatternType() - -<# - -Function Description: - - Converts a wake pattern type into a friendly name. - -Arguments: - - $WakePatternType - Supplies an NDIS_PM_WOL_PACKET enumeration value. - -Return Value: - - Returns a friendly string representation of the wake pattern type. - -#> - -{ - param ($WakePatternType) - - switch ($WakePatternType) - { - 1 { $temp = "Bitmap Pattern" } - 2 { $temp = "Magic Packet" } - 3 { $temp = "IPv4 TCP SYN" } - 4 { $temp = "IPv6 TCP SYN" } - 5 { $temp = "EAPOL Request Id Message" } - 6 { $temp = "Wildcard" } - 7 { $temp = "WFD Invitation Request" } - default { $temp = "Invalid ($($ConfigurationValue))" } - } - - return $temp -} - -function Format-BitmapWakePattern() - -<# - -Function Description: - - Converts a Pattern and Mask array to a string. - -Arguments: - - $Pattern - Supplies an array of bytes defining a pattern match. - - $Mask - Supplies an array of bytes masking the pattern. The nth bit of the - $Mask array indicates whether the nth byte in the Pattern should be - matched (1) or ignored (0). - -Return Value: - - Returns a string containing the bytes of the pattern match. Bytes that are - ignored are represented by "--". - -#> - -{ - param( - [byte[]] ${Pattern}, - [byte[]] ${Mask} - ) - - $Width = 16 - $out = "" - - $PatternLength = $Pattern.Length - $Bit = 1 - $MaskIndex = 0 - for ($i = 0; $i -lt $PatternLength; $i++) - { - # - # Print offset at the beginning of each line - # - - if (($i % $Width) -eq 0) - { - $out += "{0:x2} : " -f $i - } - - # - # Check whether the pattern byte is masked - # - - if ($Mask[$MaskIndex] -band $Bit) - { - $out += "{0:x2} " -f $Pattern[$i] - } - else - { - $out += "-- " -f $Pattern[$i] - } - - # - # Newline if this is the last element on the line. - # - - if (($i % $Width) -eq ($Width - 1)) - { - $out += "`n" - } - - # - # Walk through the mask bits. - # - - $Bit = $Bit * 2 - if ($Bit -gt 128) - { - $MaskIndex++ - $Bit = 1 - } - } - - $out -} diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.ps1xml deleted file mode 100644 index bd6f3c7..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.Format.ps1xml +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - - NetAdapterPowerManagement ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagementSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagementSettingData - - - - - - - InterfaceDescription - - - Name - - - ArpOffload - - - NSOffload - - - RsnRekeyOffload - - - D0PacketCoalescing - - - SelectiveSuspend - - - DeviceSleepOnDisconnect - - - WakeOnMagicPacket - - - WakeOnPattern - - - - - - - - NetAdapterPowerManagement_WakePattern Default ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern_MagicPacket - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern_MagicPacket - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern_EapolRequestId - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern_EapolRequestId - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern_WildCard - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern_WildCard - - - - - - - - - Import-Module NetAdapter\MSFT_NetAdapterPowerManagement.Format.Helper.psm1 - Format-WakePatternType $_.WakePacketType - - - - ID - - - - - "{0:x8}" -f ($_.Priority) - - - - FriendlyName - - - - - - - - NetAdapterPowerManagement_WakePattern_TcpSyn ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern_TcpSyn - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern_TcpSyn - - - - - - - - - Import-Module NetAdapter\MSFT_NetAdapterPowerManagement.Format.Helper.psm1 - Format-WakePatternType $_.WakePacketType - - - - ID - - - - - "{0:x8}" -f ($_.Priority) - - - - FriendlyName - - - SourceAddress - - - SourcePort - - - DestinationAddress - - - DestinationPort - - - - - - - - NetAdapterPowerManagement_WakePattern_Bitmap ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagement_WakePattern_Bitmap - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterPowerManagement_WakePattern_Bitmap - - - - - - - - - Import-Module NetAdapter\MSFT_NetAdapterPowerManagement.Format.Helper.psm1 - Format-WakePatternType $_.WakePacketType - - - - ID - - - - - "{0:x8}" -f ($_.Priority) - - - - FriendlyName - - - - - Import-Module NetAdapter\MSFT_NetAdapterPowerManagement.Format.Helper.psm1 - Format-BitmapWakePattern $_.Pattern $_.Mask - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.cmdletDefinition.cdxml deleted file mode 100644 index 1a99a04..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterPowerManagement.cmdletDefinition.cdxml +++ /dev/null @@ -1,304 +0,0 @@ - - - - 1.0 - NetAdapterPowerManagement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Enabled - Disabled - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.Helper.psm1 b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.Helper.psm1 deleted file mode 100644 index 9aefcc2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.Helper.psm1 +++ /dev/null @@ -1,179 +0,0 @@ -<# - -Copyright (c) 2011 Microsoft Corporation. All Rights Reserved. - -Module Name: - - MSFT_NetAdapterQos.Format.Helper.psm1 - -Description: - - Provides helper routines for formatting the output of NetAdapterQos cmdlets. - -#> - -# -# This function accepts a PRE-SORTED array of integers and returns a formatted -# string that groups these numbers as follows: -# -# In: {0,1,2,4,6,7} -# Out: "0-2, 4, 6-7" -# -function Format-NetAdapterQosIntegerArray( - $array -) -{ - $out = "" - $first = $array[0] - $previous = $array[0] - - for ($i = 1; $i -le $array.count; $i++) - { - $previous++ - - if ($i -eq $array.count -or $array[$i] -ne $previous) - { - if ($out[0]) { $out += "," } - - if ($previous - $first -gt 1) - { - $out += "$($first)-$($previous - 1)" - } - else - { - $out += "$($first)" - } - - if ($i -ne $array.count) - { - $first = $array[$i] - $previous = $array[$i] - } - } - } - - return $out -} - -# -# This function accepts an MSFT_NetAdapter_QosSettings and generates formatted -# output using the information from the PriorityAssignmentTable, -# BandwidthAssignmentTable, and TsaAssignmentTable fields. -# -function Format-NetAdapterQosTrafficClass( - $settings -) -{ - $template = "{0,2} {1,-6} {2,-9} {3}`n" - - $out = "" - $out += $template -f "TC", "TSA", "Bandwidth", "Priorities" - $out += $template -f "--", "---", "---------", "----------" - - $tcprimap = @(@(),@(),@(),@(),@(),@(),@(),@()) - for ($tc = 0; $tc -lt $tcprimap.count; $tc++) - { - $tcprimap[$tc] = @() - } - - for ($pri = 0; $pri -lt $settings.PriorityAssignmentTable.count; $pri++) - { - $tc = $settings.PriorityAssignmentTable[$pri] - $tcprimap[$tc] += @($pri) - } - - $actual_cnt = 0 - - for ($tc = 0; $tc -lt $settings.TsaAssignmentTable.count; $tc++) - { - if ($tcprimap[$tc].count -eq 0) { continue } - - $actual_cnt++ - - $tsa = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterQos.Tsa]$settings.TsaAssignmentTable[$tc] - $temp = Format-NetAdapterQosIntegerArray $tcprimap[$tc] - - $bw_str = "" - if ($tsa -eq [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterQos.Tsa]::ETS) - { - $bw = $settings.BandwidthAssignmentTable[$tc] - $bw_str = "$($bw)%" - } - - $out += $template -f $tc, $tsa, $bw_str, $temp - } - - if ($actual_cnt -eq 0) - { - $out = "" - } - - return $out -} - -# -# This function accepts an MSFT_NetAdapter_QosSettings and generates formatted -# output using the information from the PriorityFlowControlEnableArray field. -# -function Format-NetAdapterQosFlowControl( - $settings -) -{ - $enablecnt = 0 - $enablearray = @() - - for ($pri = 0; $pri -lt $settings.PriorityFlowControlEnableArray.count; $pri++) - { - if ($settings.PriorityFlowControlEnableArray[$pri]) - { - $enablecnt++ - $enablearray += @($pri) - } - } - - if ($enablecnt -eq $settings.PriorityFlowControlEnableArray.count) { $out = "All Priorities Enabled" } - elseif ($enablecnt -eq 0) { $out = "All Priorities Disabled" } - elseif ($enablecnt -eq 1) { $out = "Priority $($enablearray[0]) Enabled" } - else { $out = "Priorities $(Format-NetAdapterQosIntegerArray $enablearray) Enabled" } - - return $out -} - -# -# This function accepts an MSFT_NetAdapter_QosSettings and generates formatted -# output using the information from the ClassificationTable field. -# -function Format-NetAdapterQosClassification( - $settings -) -{ - if ($settings.ClassificationTable.count -eq 0) - { - return "" - } - - $template = "{0,-9} {1,-9} {2}`n" - - $out = "" - $out += $template -f "Protocol", "Port/Type", "Priority" - $out += $template -f "--------", "---------", "--------" - - foreach ($element in $settings.ClassificationTable) - { - switch ($element.ProtocolSelector) - { - 0 { $protocol_str = "Reserved"; $port_str = "" } - 1 { $protocol_str = "Default"; $port_str = "" } - 2 { $protocol_str = "TCP"; $port_str = "$($element.ProtocolSpecificValue)" } - 3 { $protocol_str = "UDP"; $port_str = "$($element.ProtocolSpecificValue)" } - 4 { $protocol_str = "TCP/UDP"; $port_str = "$($element.ProtocolSpecificValue)" } - 5 { $protocol_str = "Ethertype"; $port_str = "0x{0:X0}" -f $element.ProtocolSpecificValue } - 6 { $protocol_str = "NetDirect"; $port_str = "$($element.ProtocolSpecificValue)" } - default { $protocol_str = "($($element.ProtocolSelector))"; $port_str = "0x{0:X0}" -f $element.ProtocolSpecificValue } - } - - $out += $template -f $protocol_str, $port_str, $element.Priority - } - - return $out -} diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.ps1xml deleted file mode 100644 index d0cf409..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.Format.ps1xml +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - MSFT_NetAdapterQosSettingData - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterQosSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterQosSettingData - - - - - - - Name - - - Enabled - - - - $_.HardwareCapabilities -and $_.CurrentCapabilities - - Capabilities - - - - $_.OperationalSettings - - OperationalTrafficClasses - - - - $_.OperationalSettings - - OperationalFlowControl - - - - $_.OperationalSettings - - OperationalClassifications - - - - $_.RemoteSettings - - RemoteTrafficClasses - - - - $_.RemoteSettings - - RemoteFlowControl - - - - $_.RemoteSettings - - RemoteClassifications - - - - - - - - - MSFT_NetAdapter_QosSettings - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter_QosSettings - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_QosSettings - - - - - - - TransmissionSelectionEnabled - - - PriorityAssignmentTable - - - TsaAssignmentTable - - - BandwidthAssignmentTable - - - FlowControlEnabled - - - PriorityFlowControlEnableArray - - - ClassificationEnabled - - - NumberOfClassificationElements - - - ClassificationTable - - - - - - - - - MSFT_NetAdapter_QosClassificationElement - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter_QosClassificationElement - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_QosClassificationElement - - - - - - - ProtocolSelector - - - ProtocolSpecificValue - - - Priority - - - - - - - - - MSFT_NetAdapter_QosCapabilities - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter_QosCapabilities - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_QosCapabilities - - - - - - - MacSecBypass - - - DcbxSupport - - - - NumTCs - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.cdxml deleted file mode 100644 index 127e61f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterQos.cdxml +++ /dev/null @@ -1,173 +0,0 @@ - - - - 1.0 - NetAdapterQos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.Format.ps1xml deleted file mode 100644 index 3babab4..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.Format.ps1xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - Default - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimv2\MSFT_NetAdapterRdmaSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRdmaSettingData - - - - - - 25 - - - - 40 - - - - 11 - - - - 10 - - - - 10 - - - - - - - Name - - - InterfaceDescription - - - Enabled - - - PFC - - - ETS - - - - - - - - MSFT_NetAdapterRdma_AdapterInfo_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimv2\MSFT_NetAdapter_RdmaAdapterInfo - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_RdmaAdapterInfo - - - - - - - MajorVersionNumber - - - MinorVersionNumber - - - VendorId - - - DeviceId - - - MaxRegistrationSize - - - MaxWindowSize - - - FRMRPageCount - - - MaxInitiatorRequestSge - - - MaxReceiveRequestSge - - - MaxReadRequestSge - - - MaxTransferLength - - - MaxInlineDataSize - - - MaxInboundReadLimit - - - MaxOutboundReadLimit - - - MaxReceiveQueueDepth - - - MaxInitiatorQueueDepth - - - MaxSharedReceiveQueueDepth - - - MaxCompletionQueueDepth - - - LargeRequestThreshold - - - MaxCallerData - - - MaxCalleeData - - - InOrderDMA - - - SupportsCompletionQueueResize - - - SupportsLoopbackConnections - - - RdmaReadSinkFlagNotRequired - - - SupportsCompletionQueueInterruptModeration - - - SupportsMultiEngine - - - RdmaTechnology - - - - - - - - MSFT_NetAdapterRdma_MissingCounterInfo_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimv2\MSFT_NetAdapter_RdmaMissingCounterInfo - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_RdmaMissingCounterInfo - - - - - - - $_.ConnectPerformanceCounterMissing - ConnectPerformanceCounterMissing - - - $_.AcceptPerformanceCounterMissing - AcceptPerformanceCounterMissing - - - $_.ConnectFailurePerformanceCounterMissing - ConnectFailurePerformanceCounterMissing - - - $_.ConnectionErrorPerformanceCounterMissing - ConnectionErrorPerformanceCounterMissing - - - $_.ActiveConnectionPerformanceCounterMissing - ActiveConnectionPerformanceCounterMissing - - - $_.CompletionQueueErrorPerformanceCounterMissing - CompletionQueueErrorPerformanceCounterMissing - - - $_.RDMAInOctetsPerformanceCounterMissing - RDMAInOctetsPerformanceCounterMissing - - - $_.RDMAOutOctetsPerformanceCounterMissing - RDMAOutOctetsPerformanceCounterMissing - - - $_.RDMAInFramesPerformanceCounterMissing - RDMAInFramesPerformanceCounterMissing - - - $_.RDMAOutFramesPerformanceCounterMissing - RDMAOutFramesPerformanceCounterMissing - - - - - - - - MSFT_NetAdapterRdma_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimv2\MSFT_NetAdapterRdmaSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRdmaSettingData - - - - - - - Name - - - InterfaceDescription - - - Enabled - - - MaxQueuePairCount - - - MaxCompletionQueueCount - - - MaxMemoryRegionCount - - - MaxProtectionDomainCount - - - MaxInboundReadLimit - - - MaxOutboundReadLimit - - - MaxMemoryWindowCount - - - MaxSharedReceiveQueueCount - - - PFC - - - ETS - - - - - ($_.RdmaAdapterInfo|fl|out-string).Trim() - - - - - - ($_.RdmaMissingCounterInfo|fl|out-string).Trim() - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.cdxml deleted file mode 100644 index 77a71df..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRdma.cdxml +++ /dev/null @@ -1,165 +0,0 @@ - - - - 1.0 - NetAdapterRdma - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.Format.ps1xml deleted file mode 100644 index 08d09a4..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.Format.ps1xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - MSFT_NetAsapterRsc_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRscSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRscSettingData - - - - - 30 - - - 12 - - - 12 - - - 15 - - - 15 - - - 17 - - - 17 - - - - - - - Name - - - IPv4Enabled - - - IPv6Enabled - - - IPv4OperationalState - - - IPv6OperationalState - - - IPv4FailureReason - - - IPv6FailureReason - - - - - - - - MSFT_NetAsapterRsc_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRscSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRscSettingData - - - - - - - Name - - - InterfaceDescription - - - IPv4Enabled - - - IPv6Enabled - - - - $_.RscHardwareCapabilities.IPv4Supported - - - - $_.RscHardwareCapabilities.IPv6Supported - - - IPv4OperationalState - - - IPv6OperationalState - - - IPv4FailureReason - - - IPv6FailureReason - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.cdxml deleted file mode 100644 index 1d72c71..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRsc.cdxml +++ /dev/null @@ -1,222 +0,0 @@ - - - - 1.0 - NetAdapterRsc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.Format.ps1xml deleted file mode 100644 index 51868c6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.Format.ps1xml +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - MSFT_NetAsapterRss_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRssSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRssSettingData - - - - - - - - Name - - - - InterfaceDescription - - - - Enabled - - - - NumberOfReceiveQueues - - - - Profile - - - - - "$($_.BaseProcessorGroup):$($_.BaseProcessorNumber)" - - - - - - "$($_.MaxProcessorGroup):$($_.MaxProcessorNumber)" - - - - - MaxProcessors - - - - - $out="" - for ($i = 0; $i -lt $_.RssProcessorArraySize;) - { - $out+="$($_.RssProcessorArray[$i].ProcessorGroup):$($_.RssProcessorArray[$i].ProcessorNumber)/" - $out+="$($_.RssProcessorArray[$i].PreferenceIndex)" - $i++; - if (($i % 8) -eq 0) {if($i -ne $_.RssProcessorArraySize){$out+="`n"}} else {$out+=" "} - } - $out - - - - - - $out="" - for ($i = 0; $i -lt $_.IndirectionTableEntryCount;) - { - $out+="$($_.IndirectionTable[$i].ProcessorGroup):$($_.IndirectionTable[$i].ProcessorNumber)`t" - $i++; - if ((($i % 8) -eq 0) -and ($i -ne $_.IndirectionTableEntryCount)) {$out+="`n"} - } - $out - - - - - - - - - MSFT_NetAsapterRss_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRssSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterRssSettingData - - - - - - 30 - - - - 7 - - - - 24 - - - - 13 - - - - 12 - - - - 13 - - - - 6 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - Enabled - - - Profile - - - - $out = "$($_.BaseProcessorGroup):$($_.BaseProcessorNumber)" - $out - - - - - $out = "$($_.MaxProcessorGroup):$($_.MaxProcessorNumber)" - $out - - - - MaxProcessors - - - NumberOfReceiveQueues - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.cmdletDefinition.cdxml deleted file mode 100644 index 12d320b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterRss.cmdletDefinition.cdxml +++ /dev/null @@ -1,214 +0,0 @@ - - - - 1.0 - NetAdapterRss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.Format.ps1xml deleted file mode 100644 index 394aa50..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.Format.ps1xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - MSFT_NetAdapterSriov_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterSriovSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterSriovSettingData - - - - - - - - Name - - - - InterfaceDescription - - - - Enabled - - - - SriovSupport - - - - SwitchName - - - - NumVFs - - - - - - - - MSFT_NetAdapterSriov_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterSriovSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterSriovSettingData - - - - - - 30 - - - - 20 - - - - 20 - - - - 10 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - SwitchName - - - SriovSupport - - - NumVFs - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.cdxml deleted file mode 100644 index ffd637c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriov.cdxml +++ /dev/null @@ -1,168 +0,0 @@ - - - - 1.0 - NetAdapterSriov - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.Format.ps1xml deleted file mode 100644 index 71147f3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.Format.ps1xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - MSFT_NetAsapterVPort_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterSriovVfSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterSriovVfSettingData - - - - - - 30 - - - - 10 - - - - 7 - - - - 17 - - - - 30 - - - - 20 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - FunctionID - - - VPortID - - - - $out="" - if ($_.CurrentMacAddress) - { - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $out = Format-MacAddress $_.CurrentMacAddress - } - $out - - - - VmID - - - VmFriendlyName - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.cmdletDefinition.cdxml deleted file mode 100644 index ebf1285..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterSriovVf.cmdletDefinition.cdxml +++ /dev/null @@ -1,42 +0,0 @@ - - - - 1.0 - NetAdapterSriovVf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.Format.ps1xml deleted file mode 100644 index 97216e2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.Format.ps1xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - MSFT_NetAsapterStatistics_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterStatisticsSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterStatisticsSettingData - - - - - - 30 - - - - 15 - Right - - - - 22 - Right - - - - 15 - Right - - - - 18 - Right - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - ReceivedBytes - - - ReceivedUnicastPackets - - - SentBytes - - - SentUnicastPackets - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.cmdletDefinition.cdxml deleted file mode 100644 index ca71d42..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterStatistics.cmdletDefinition.cdxml +++ /dev/null @@ -1,30 +0,0 @@ - - - - 1.0 - NetAdapterStatistics - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.Format.ps1xml deleted file mode 100644 index 8515eec..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.Format.ps1xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - MSFT_NetAsapterUso_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterUsoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterUsoSettingData - - - - - 30 - - - 12 - - - 12 - - - - - - - Name - - - IPv4Enabled - - - IPv6Enabled - - - - - - - - MSFT_NetAsapterUso_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterUsoSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterUsoSettingData - - - - - - - Name - - - InterfaceDescription - - - IPv4Enabled - - - IPv6Enabled - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv4MaxOffloadSizeSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv4MinSegmentCountSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv4SubMssFinalSegmentSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv6MaxOffLoadSizeSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv6MinSegmentCountSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv6SubMssFinalSegmentSupported - - - - $_.UdpSegmentationOffloadHardwareCapabilities.IPv6IpExtensionHeadersSupported - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.cdxml deleted file mode 100644 index edeaef2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterUso.cdxml +++ /dev/null @@ -1,184 +0,0 @@ - - - - 1.0 - NetAdapterUso - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.Format.ps1xml deleted file mode 100644 index f43b091..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.Format.ps1xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - MSFT_NetAsapterVPort_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVPortSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterVPortSettingData - - - - - - 25 - - - - 6 - - - - 25 - - - - 5 - - - - 10 - - - - 9 - - - - 11 - - - - 9 - - - - 6 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 25 - - - - VPortID - - - - $out="" - if ($_.FilterList -and ($_.FilterList.Length -ge 1)) - { - $MacAddress=$_.FilterList[0].MacAddress - if ($MacAddress) - { - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $out = Format-MacAddress $MacAddress - } - } - $out - - - - - $out="" - if ($_.FilterList -and ($_.FilterList.Length -ge 1)) - { - if ($_.FilterList[0].VlanID -ne $null) - { - $out = "$($_.FilterList[0].VlanID)" - } - } - $out - - - - - $out="" - if($_.ProcessorAffinityMask -ne $null) - { - $affinity = $_.ProcessorAffinityMask - $ProcNumber = 0 - while($affinity -and !($affinity%2)){$affinity=$affinity/2;$ProcNumber++} - $out="$($_.ProcessorGroup):$ProcNumber" - } - $out - - - - - $out = "" - if ($_.FunctionID -ne $null) - { - if($_.FunctionID -eq 65535) - { - $out="PF" - } - else - { - $out=$_.FunctionID - } - } - $out - - - - - $out=switch ($_.VPortState) - { - 0 {"Unknown"} - 1 {"Activated"} - 2 {"DeActivated"} - default {"Unknown"} - } - $out - - - - - $out=switch ($_.InterruptModeration) - { - 0 {"Unknown"} - 1 {"Adaptive"} - 2 {"Off"} - 100 {"Low"} - 200 {"Medium"} - 300 {"High"} - default {"Unknown"} - } - $out - - - - NumQueuePairs - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.cmdletDefinition.cdxml deleted file mode 100644 index 54fa29a..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVPort.cmdletDefinition.cdxml +++ /dev/null @@ -1,52 +0,0 @@ - - - - 1.0 - NetAdapterVPort - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.Format.ps1xml deleted file mode 100644 index c764e33..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.Format.ps1xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - MSFT_NetAsapterVmq_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVmqSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterVmqSettingData - - - - - - 30 - - - - 33 - - - - 7 - - - - 16 - - - - 13 - - - - 16 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterInstanceID $_.InterfaceDescription 33 - - - - Enabled - - - - $out = "$($_.BaseProcessorGroup):$($_.BaseProcessorNumber)" - $out - - - - MaxProcessors - - - NumberOfReceiveQueues - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.cmdletDefinition.cdxml deleted file mode 100644 index 4ce4f8c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmq.cmdletDefinition.cdxml +++ /dev/null @@ -1,184 +0,0 @@ - - - - 1.0 - NetAdapterVmq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.Format.ps1xml deleted file mode 100644 index ae4dd67..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.Format.ps1xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - MSFT_NetAsapterVmqQueue_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVmqQueueSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapterVmqQueueSettingData - - - - - - 30 - - - - 7 - - - - 17 - - - - 6 - - - - 9 - - - - 38 - - - - - - - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-AdapterName $_.Name 30 - - - - QueueID - - - - $out="" - if ($_.FilterList -and ($_.FilterList.Length -ge 1)) - { - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $out = Format-MacAddress $_.FilterList[0].MacAddress - } - $out - - - - - $out="" - if ($_.FilterList -and ($_.FilterList.Length -ge 1)) - { - if ($_.FilterList[0].VlanID -ne $null) - { - $out = "$($_.FilterList[0].VlanID)" - } - } - $out - - - - - $out="" - if($_.ProcessorAffinityMask -ne $null) - { - $affinity = $_.ProcessorAffinityMask - $ProcNumber = 0 - while($affinity -and !($affinity%2)){$affinity=$affinity/2;$ProcNumber++} - $out="$($_.ProcessorGroup):$ProcNumber" - } - $out - - - - VmFriendlyName - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.cmdletDefinition.cdxml deleted file mode 100644 index f7ab043..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/MSFT_NetAdapterVmqQueue.cmdletDefinition.cdxml +++ /dev/null @@ -1,36 +0,0 @@ - - - - 1.0 - NetAdapterVmqQueue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Format.Helper.psm1 b/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Format.Helper.psm1 deleted file mode 100644 index 92f0dca..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Format.Helper.psm1 +++ /dev/null @@ -1,137 +0,0 @@ -<# - -Copyright (c) 2011 Microsoft Corporation. All Rights Reserved. - -Module Name: - - NetAdapter.Format.Helper.psm1 - -Description: - - Provides helper routines for formatting the output of - NetAdapter CmdLets. - -#> - -function Format-MacAddress($MacAddress) -<# -Function Description: - This function formats a MAC address - -Arguments: - $MacAddress - -Return Value: - Formatted MAC address -#> -{ - $out = "" - if($MacAddress -ne $null) - { - for($i = 0; $i -lt $MacAddress.Length; ) - { - $out += $MacAddress[$i++]; - if($i -eq $MacAddress.Length) - { - break; - } - $out += $MacAddress[$i++]; - if ($i -lt $MacAddress.Length) - { - $out += '-'; - } - } - } - return $out -} - -function Format-AdapterName($Name, $Width) -<# -Function Description: - This function formats a network adapter name (ifAlias) - by fitting the name in specified column width. - If the name contains a number at the end, this function - makes sure that the number is preserved. - -Arguments: - $Name - $Width - -Return Value: - Formatted name -#> -{ - $out = $Name - if ($Name.length -gt $width) - { - $idpresent = $Name -match "(\d+$)" - if ($idpresent -and ($width -gt ($matches[0].length+3))) - { - $base = $Name.substring(0, $width - ($matches[0].length+3)) - $out=$base+"..."+$matches[0] - } - } - - return $out -} - -function Format-AdapterInstanceID($InstanceID, $Width) -<# -Function Description: - This function formats a network adapter InstanceID (ifDeesc) - by fitting the InstanceID in specified column width. - If the InstanceID contains a number at the end, this function - makes sure that the number is preserved. - -Arguments: - $InstanceID - $Width - -Return Value: - Formatted InstanceID -#> -{ - $out = $InstanceID - if ($InstanceID.length -gt $width) - { - $idpresent = $InstanceID -match "(#\d+$)" - if ($idpresent -and ($width -gt ($matches[0].length+3))) - { - $base = $InstanceID.substring(0, $width - ($matches[0].length+3)) - $out=$base+"..."+$matches[0] - } - } - return $out -} - -function Format-LinkSpeed([Decimal]$LinkSpeed, $Precision = 1, $AutoFormat = $true) -<# -Function Description: - This function returns the link speed of a network adapter - -Arguments: - $LinkSpeed - LinkSpeed - $Precision - Precision to use when rounding - $AutoFormat - Automatically format the number and display units after - -Return Value: - Formatted link speed -#> -{ - if ($LinkSpeed -eq $null) { - return "Unknown" - } - - if ($AutoFormat -eq $true) { - $Postfixes = @("", "K", "M", "G", "T") - for ($i = 0; $LinkSpeed -ge 1000 -and $i -lt $Postfixes.Length - 1; $i++) { - $LinkSpeed /= 1000 - } - $ps = " " + $Postfixes[$i] + "bps" - } else { - $ps = $null - } - - $LinkSpeed = [Math]::Round([Decimal]$LinkSpeed, $Precision) - return "$LinkSpeed" + $ps -} diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Types.ps1xml deleted file mode 100644 index 150feb6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.Types.ps1xml +++ /dev/null @@ -1,1267 +0,0 @@ - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter - - - MacAddress - - $out = "" - if (($this.NetworkAddresses -ne $null) -and - ($this.NetworkAddresses.length -ge 1)) - { - $MacAddress = $this.NetworkAddresses[0]; - } - if($MacAddress -ne $null) - { - for($i = 0; $i -lt $MacAddress.Length; ) - { - $out += $MacAddress[$i++]; - if($i -eq $MacAddress.Length) - { - break; - } - $out += $MacAddress[$i++]; - if ($i -lt $MacAddress.Length) - { - $out += '-'; - } - } - } - $out - - - param($newValue) - $MacAddress = $newValue -replace '(:|-)' - $this.NetworkAddresses = $MacAddress - - - - Status - - $NetAdapter = $this; - $out = switch ($NetAdapter.InterfaceOperationalStatus) - { - 1 {"Up"} - 3 {"Testing"} - 4 {"Unknown"} - 5 {"Dormant"} - 6 {"Not Present"} - 7 {"Lower Layer Down"} - } - if ($NetAdapter.InterfaceOperationalStatus -eq 2) - { - if ($NetAdapter.InterfaceAdminStatus -eq 2) - { - $out = "Disabled" - } - else - { - $first = $true; - if ($NetAdapter.OperationalStatusDownDefaultPortNotAuthenticated) - { - $out = "Not Authenticated" - $first = $false; - } - if ($NetAdapter.OperationalStatusDownMediaDisconnected) - { - if (-not $first) {$out += ", "} - $out += "Disconnected" - $first = $false; - } - - if ($NetAdapter.OperationalStatusDownLowPowerState) - { - if (-not $first) {$out += ", "} - $out += "Low Power State" - $first = $false; - } - } - } - $out - - - - LinkSpeed - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $this.TransmitLinkSpeed - - - - MediaType - - $out = switch ($this.NdisMedium) - { - 0 {"802.3"} - 3 {"WAN"} - 9 {"Wireless WAN"} - 12 {"Connection Oriented WAN"} - 15 {"Tunnel"} - 16 {"Native 802.11"} - 17 {"Loopback"} - 18 {"WiMAX"} - 19 {"IP"} - default {"Unknown"} - } - $out - - - - PhysicalMediaType - - $out = switch ($this.NdisPhysicalMedium) - { - 0 {"Unspecified"} - 1 {"Wireless LAN"} - 2 {"Cable Modem"} - 8 {"Wireless WAN"} - 9 {"Native 802.11"} - 10 {"BlueTooth"} - 11 {"Infiniband"} - 12 {"WiMAX"} - 13 {"UWB"} - 14 {"802.3"} - 16 {"IRDA"} - 17 {"Wired WAN"} - 18 {"Wired Connection Oriented WAN"} - 19 {"Other"} - default {"Unknown"} - } - $out - - - - AdminStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapter.NET_IF_ADMIN_STATUS][System.UInt32]$this.InterfaceAdminStatus - - - - MediaConnectionState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapter.NET_IF_MEDIA_CONNECT_STATE][System.UInt32]$this.MediaConnectState - - - - DriverInformation - - $out="Driver Date $($this.DriverDate) Version $($this.DriverVersionString)" - if ($this.DriverMajorNdisVersion -ne $null) - { - $out +=" NDIS $($this.DriverMajorNdisVersion).$($this.DriverMinorNdisVersion)" - } - $out - - - - DriverFileName - - (Split-Path $this.DriverName -Leaf) - - - - NdisVersion - - $out = if ($this.DriverMajorNdisVersion) - { - "$($this.DriverMajorNdisVersion).$($this.DriverMinorNdisVersion)" - } - else - { - $out = "Unknown" - } - $out - - - - ifOperStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapter.IF_OPER_STATUS][System.UInt32]$this.InterfaceOperationalStatus - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifIndex - InterfaceIndex - - - ifDesc - InterfaceDescription - - - ifName - InterfaceName - - - DriverVersion - DriverVersionString - - - LinkLayerAddress - MacAddress - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterHardwareInfoSettingData - - - SriovSupport - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterSriov.SriovSupport]($this.PSBase.CimInstanceProperties['SriovSupport'].Value) - - - - PcieLinkSpeed - - $out = switch ($this.PciExpressCurrentLinkSpeedEncoded) - { - 1 {"2.5 GT/s"} - 2 {"5.0 GT/s"} - 3 {"8.0 GT/s"} - default {"Unknown"} - } - $out - - - - PcieMaxLinkSpeed - - $out = switch ($this.PciExpressMaxLinkSpeedEncoded) - { - 1 {"2.5 GT/s"} - 2 {"5.0 GT/s"} - 3 {"8.0 GT/s"} - default {"Unknown"} - } - $out - - - - Version - - $out= switch ($this.PciExpressVersion) - { - 1 {"1.0"} - 2 {"1.1"} - } - $out - - - - DeviceType - - $out= switch ($this.PciDeviceType) - { - 0 {"Conventional PCI"} - 1 {"PCI-X"} - 2 {"PCI Express endpoint"} - 3 {"PCI Express legacy endpoint"} - 4 {"PCI Express Root Complex integrated endpoint"} - 5 {"PCI Express treated as PCI"} - default {"Unknown"} - } - $out - - - - CurrentSpeedAndMode - - $out = if ($this.PciDeviceType -eq 0) - { - switch ($this.PciCurrentSpeedAndMode) - { - 0 {"Conventional PCI 33MHz"} - 1 {"Conventional PCI 66MHz"} - default {"Unknown"} - } - } - else - { - if ($this.PciDeviceType -eq 1) - { - switch ($this.PciXCurrentSpeedAndMode) - { - 0 {"PCI-X Mode conventional PCI"} - 1 {"PCI-X Mode1 66MHz"} - 2 {"PCI-X Mode1 100MHz"} - 3 {"PCI-X Mode1 133MHz"} - 5 {"PCI-X Mode1 ECC 66MHz"} - 6 {"PCI-X Mode1 ECC 100MHz"} - 7 {"PCI-X Mode1 ECC 133MHz"} - 9 {"PCI-X Mode2 266 66MHz"} - 10 {"PCI-X Mode2 266 100MHz"} - 11 {"PCI-X Mode2 266 133MHz"} - 13 {"PCI-X Mode2 533 66MHz"} - 14 {"PCI-X Mode2 533 100MHz"} - 15 {"PCI-X Mode2 533 133MHz"} - default {"Unknown"} - } - - } - else - { - "NA" - } - } - $out - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - Segment - SegmentNumber - - - Bus - BusNumber - - - Device - DeviceNumber - - - Function - FunctionNumber - - - Slot - SlotNumber - - - PcieLinkWidth - PciExpressCurrentLinkWidth - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterAdvancedPropertySettingData - - - ValueName - RegistryKeyword - - - ValueData - RegistryValue - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterBindingSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRssSettingData - - - Profile - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRss.Profile]($this.PSBase.CimInstanceProperties['Profile'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Profile'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRss.Profile]$newValue - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVmqSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVmqQueueSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterSriovSettingData - - - SriovSupport - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterSriov.SriovSupport]($this.PSBase.CimInstanceProperties['SriovSupport'].Value) - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterSriovVfSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterVPortSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - QPairs - NumQueuePairs - - - ITR - InterruptModeration - - - FID - FunctionID - - - ProcMask - ProcessorAffinityMask - - - State - VPortState - - - ID - VPortID - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterStatisticsSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterLsoSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - Version - MaximumLsoVersionSupported - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterChecksumOffloadSettingData - - - IpIPv4Enabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]($this.PSBase.CimInstanceProperties['IpIPv4Enabled'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IpIPv4Enabled'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]$newValue - - - - TcpIPv4Enabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]($this.PSBase.CimInstanceProperties['TcpIPv4Enabled'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['TcpIPv4Enabled'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]$newValue - - - - TcpIPv6Enabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]($this.PSBase.CimInstanceProperties['TcpIPv6Enabled'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['TcpIPv6Enabled'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]$newValue - - - - UdpIPv4Enabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]($this.PSBase.CimInstanceProperties['UdpIPv4Enabled'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['UdpIPv4Enabled'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]$newValue - - - - UdpIPv6Enabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]($this.PSBase.CimInstanceProperties['UdpIPv6Enabled'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['UdpIPv6Enabled'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterChecksumOffload.Direction]$newValue - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterQosSettingData - - - Name - - [System.String]($this.PSBase.CimInstanceProperties['Name'].Value) - - - - Enabled - - [System.Boolean]($this.PSBase.CimInstanceProperties['Enabled'].Value) - - - - Capabilities - - $hwCaps = $this.PSBase.CimInstanceProperties['HardwareCapabilities'].Value - $curCaps = $this.PSBase.CimInstanceProperties['CurrentCapabilities'].Value - - $template = "{0,-21} {1,-12} {2,-12}`n" - $out = "" - $out += $template -f "", "Hardware", "Current" - $out += $template -f "", "--------", "-------" - - $template = "{0,-19} : {1,-12} {2,-12}`n" - $out += $template -f "MacSecBypass", $hwCaps.MacSecBypass, $curCaps.MacSecBypass - $out += $template -f "DcbxSupport", $hwCaps.DcbxSupport, $curCaps.DcbxSupport - $out += $template -f "NumTCs(Max/ETS/PFC)", $hwCaps.NumTCs, $curCaps.NumTCs - $out - - - - HardwareCapabilities - - $this.PSBase.CimInstanceProperties['HardwareCapabilities'].Value - - - - CurrentCapabilities - - $this.PSBase.CimInstanceProperties['CurrentCapabilities'].Value - - - - OperationalTrafficClasses - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['OperationalSettings'].Value - $out = "" - - if ($settings -and $settings.TransmissionSelectionEnabled) { - $out = Format-NetAdapterQosTrafficClass $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - OperationalFlowControl - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['OperationalSettings'].Value - $out = "" - - if ($settings -and $settings.FlowControlEnabled) { - $out = Format-NetAdapterQosFlowControl $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - OperationalClassifications - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['OperationalSettings'].Value - $out = "" - - if ($settings -and $settings.ClassificationEnabled) { - $out = Format-NetAdapterQosClassification $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - RemoteTrafficClasses - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['RemoteSettings'].Value - $out = "" - - if ($settings -and $settings.TransmissionSelectionEnabled) { - $out = Format-NetAdapterQosTrafficClass $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - RemoteFlowControl - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['RemoteSettings'].Value - $out = "" - - if ($settings -and $settings.FlowControlEnabled) { - $out = Format-NetAdapterQosFlowControl $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - RemoteClassifications - - import-module netadapter\msft_netadapterqos.format.helper.psm1 - - $settings = $this.PSBase.CimInstanceProperties['RemoteSettings'].Value - $out = "" - - if ($settings -and $settings.ClassificationEnabled) { - $out = Format-NetAdapterQosClassification $settings - } - - if (!$out[0]) { - $out = "Not Available" - } - - $out - - - - OperationalSettings - - $this.PSBase.CimInstanceProperties['OperationalSettings'].Value - - - - RemoteSettings - - $this.PSBase.CimInstanceProperties['RemoteSettings'].Value - - - - AdminStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterQos.AdminStatus]($this.PSBase.CimInstanceProperties['AdminStatus'].Value) - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_QosCapabilities - - - MacSecBypassSupported - - [System.Boolean]($this.PSBase.CimInstanceProperties['MacSecBypassSupported'].Value) - - - - MacSecBypass - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterQos.Supported][System.UInt32]($this.PSBase.CimInstanceProperties['MacSecBypassSupported'].Value) - - - - CeeDcbxSupported - - [System.Boolean]($this.PSBase.CimInstanceProperties['CeeDcbxSupported'].Value) - - - - IeeeDcbxSupported - - [System.Boolean]($this.PSBase.CimInstanceProperties['IeeeDcbxSupported'].Value) - - - - DcbxSupport - - $Flags = 0 - if ($this.PSBase.CimInstanceProperties['CeeDcbxSupported'].Value -ne 0) { - $Flags += 1 - } - if ($this.PSBase.CimInstanceProperties['IeeeDcbxSupported'].Value -ne 0) { - $Flags += 2 - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterQos.DcbxSupport]$Flags - - - - NumberOfTrafficClasses - - [System.Byte]($this.PSBase.CimInstanceProperties['NumberOfTrafficClasses'].Value) - - - - NumberOfEtsCapableTrafficClasses - - [System.Byte]($this.PSBase.CimInstanceProperties['NumberOfEtsCapableTrafficClasses'].Value) - - - - NumberOfPfcEnabledTrafficClasses - - [System.Byte]($this.PSBase.CimInstanceProperties['NumberOfPfcEnabledTrafficClasses'].Value) - - - - NumTCs - - $tcMax = $this.PSBase.CimInstanceProperties['NumberOfTrafficClasses'].Value - $tcEts = $this.PSBase.CimInstanceProperties['NumberOfEtsCapableTrafficClasses'].Value - $tcPfc = $this.PSBase.CimInstanceProperties['NumberOfPfcEnabledTrafficClasses'].Value - "$($tcMax)/$($tcEts)/$($tcPfc)" - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAdapter_QosSettings - - - TransmissionSelectionEnabled - - [System.Boolean]($this.PSBase.CimInstanceProperties['TransmissionSelectionEnabled'].Value) - - - - PriorityAssignmentTable - - $this.PSBase.CimInstanceProperties['PriorityAssignmentTable'].Value - - - - TsaAssignmentTable - - $this.PSBase.CimInstanceProperties['TsaAssignmentTable'].Value - - - - BandwidthAssignmentTable - - $this.PSBase.CimInstanceProperties['BandwidthAssignmentTable'].Value - - - - FlowControlEnabled - - [System.Boolean]($this.PSBase.CimInstanceProperties['FlowControlEnabled'].Value) - - - - PriorityFlowControlEnableArray - - $this.PSBase.CimInstanceProperties['PriorityFlowControlEnableArray'].Value - - - - ClassificationEnabled - - [System.Boolean]($this.PSBase.CimInstanceProperties['ClassificationEnabled'].Value) - - - - NumberOfClassificationElements - - [System.UInt32]($this.PSBase.CimInstanceProperties['NumberOfClassificationElements'].Value) - - - - ClassificationTable - - $this.PSBase.CimInstanceProperties['ClassificationTable'].Value - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterPowerManagementSettingData - - - - AllowComputerToTurnOffDevice - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['AllowComputerToTurnOffDevice'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AllowComputerToTurnOffDevice'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - D0PacketCoalescing - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['D0PacketCoalescing'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['D0PacketCoalescing'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - DeviceSleepOnDisconnect - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['DeviceSleepOnDisconnect'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DeviceSleepOnDisconnect'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - ArpOffload - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['ArpOffload'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ArpOffload'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - NSOffload - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['NSOffload'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NSOffload'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - RsnRekeyOffload - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['RsnRekeyOffload'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['RsnRekeyOffload'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - SelectiveSuspend - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['SelectiveSuspend'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['SelectiveSuspend'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - WakeOnMagicPacket - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['WakeOnMagicPacket'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['WakeOnMagicPacket'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - WakeOnPattern - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]($this.PSBase.CimInstanceProperties['WakeOnPattern'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['WakeOnPattern'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterPowerManagement.Setting]$newValue - - - - - ifAlias - Name - - - - InterfaceAlias - Name - - - - ifDesc - InterfaceDescription - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRscSettingData - - - IPv4FailureReason - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRsc.FailureReason]($this.PSBase.CimInstanceProperties['IPv4FailureReason'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IPv4FailureReason'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRsc.FailureReason]$newValue - - - - IPv6FailureReason - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRsc.FailureReason]($this.PSBase.CimInstanceProperties['IPv6FailureReason'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IPv6FailureReason'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRsc.FailureReason]$newValue - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterIPsecOffloadV2SettingData - - - AuthenticationAlgorithmsEnabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterIPsecOffloadV2.AuthenticationAlgos]($this.PSBase.CimInstanceProperties['AuthenticationAlgorithmsEnabled'].Value) - - - - AuthenticationAlgorithmsSupported - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterIPsecOffloadV2.AuthenticationAlgos]($this.PSBase.CimInstanceProperties['AuthenticationAlgorithmsSupported'].Value) - - - - EncryptionAlgorithmsEnabled - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterIPsecOffloadV2.EncryptionAlgos]($this.PSBase.CimInstanceProperties['EncryptionAlgorithmsEnabled'].Value) - - - - EncryptionAlgorithmsSupported - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterIPsecOffloadV2.EncryptionAlgos]($this.PSBase.CimInstanceProperties['EncryptionAlgorithmsSupported'].Value) - - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterRdmaSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - PFC - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRdma.QosConfiguration]($this.PSBase.CimInstanceProperties['PFC'].Value) - - - - ETS - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRdma.QosConfiguration]($this.PSBase.CimInstanceProperties['ETS'].Value) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapter_RdmaAdapterInfo - - - RdmaTechnology - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetAdapterRdma.Technology]($this.PSBase.CimInstanceProperties['RdmaTechnology'].Value) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetAdapterUsoSettingData - - - ifAlias - Name - - - InterfaceAlias - Name - - - ifDesc - InterfaceDescription - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.psd1 b/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.psd1 deleted file mode 100644 index 34b545f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetAdapter/NetAdapter.psd1 +++ /dev/null @@ -1,153 +0,0 @@ -<#++ - -Copyright (c) 2011 Microsoft Corporation - -Module Name: - - NetAdapter.psd1 - -Abstract: - - This module is the container module definition for the MSFT_NetAdapter* CIM - object CmdLets. - ---#> - -@{ - GUID = '1042b422-63a8-4016-a6d6-293e19e8f8a6' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390794" - ModuleVersion = "2.0.0.0" - PowerShellVersion = '5.1' - NestedModules = @( - 'MSFT_NetAdapter.cmdletDefinition.cdxml', - 'MSFT_NetAdapterAdvancedProperty.cmdletDefinition.cdxml', - 'MSFT_NetAdapterBinding.cmdletDefinition.cdxml', - 'MSFT_NetAdapterChecksumOffload.cdxml', - 'MSFT_NetAdapterEncapsulatedPacketTaskOffload.cdxml', - 'MSFT_NetAdapterHardwareInfo.cmdletDefinition.cdxml', - 'MSFT_NetAdapterIPsecOffload.cdxml', - 'MSFT_NetAdapterLso.cdxml', - 'MSFT_NetAdapterPowerManagement.cmdletDefinition.cdxml', - 'MSFT_NetAdapterQos.cdxml', - 'MSFT_NetAdapterRdma.cdxml', - 'MSFT_NetAdapterRsc.cdxml', - 'MSFT_NetAdapterRss.cmdletDefinition.cdxml', - 'MSFT_NetAdapterSriov.cdxml', - 'MSFT_NetAdapterSriovVf.cmdletDefinition.cdxml', - 'MSFT_NetAdapterStatistics.cmdletDefinition.cdxml', - 'MSFT_NetAdapterVmq.cmdletDefinition.cdxml', - 'MSFT_NetAdapterVmqQueue.cmdletDefinition.cdxml', - 'MSFT_NetAdapterVPort.cmdletDefinition.cdxml', - 'MSFT_NetAdapterPacketDirect.cdxml', - 'MSFT_NetAdapterUso.cdxml' - ) - - TypesToProcess = @('NetAdapter.Types.ps1xml') - - FormatsToProcess = @( - 'MSFT_NetAdapter.Format.ps1xml', - 'MSFT_NetAdapterAdvancedProperty.Format.ps1xml', - 'MSFT_NetAdapterBinding.Format.ps1xml', - 'MSFT_NetAdapterChecksumOffload.Format.ps1xml', - 'MSFT_NetAdapterEncapsulatedPacketTaskOffload.Format.ps1xml', - 'MSFT_NetAdapterHardwareInfo.Format.ps1xml', - 'MSFT_NetAdapterIPsecOffload.Format.ps1xml', - 'MSFT_NetAdapterLso.Format.ps1xml', - 'MSFT_NetAdapterPowerManagement.Format.ps1xml', - 'MSFT_NetAdapterQos.Format.ps1xml', - 'MSFT_NetAdapterRdma.Format.ps1xml', - 'MSFT_NetAdapterRsc.Format.ps1xml', - 'MSFT_NetAdapterRss.Format.ps1xml', - 'MSFT_NetAdapterSriov.Format.ps1xml', - 'MSFT_NetAdapterSriovVf.Format.ps1xml', - 'MSFT_NetAdapterStatistics.Format.ps1xml', - 'MSFT_NetAdapterVmq.Format.ps1xml', - 'MSFT_NetAdapterVmqQueue.Format.ps1xml', - 'MSFT_NetAdapterVPort.Format.ps1xml', - 'MSFT_NetAdapterPacketDirect.Format.ps1xml', - 'MSFT_NetAdapterUso.Format.ps1xml' - ) - - FunctionsToExport = @( - 'Disable-NetAdapter', - 'Disable-NetAdapterBinding', - 'Disable-NetAdapterChecksumOffload', - 'Disable-NetAdapterEncapsulatedPacketTaskOffload', - 'Disable-NetAdapterIPsecOffload', - 'Disable-NetAdapterLso', - 'Disable-NetAdapterPowerManagement', - 'Disable-NetAdapterQos', - 'Disable-NetAdapterRdma', - 'Disable-NetAdapterRsc', - 'Disable-NetAdapterRss', - 'Disable-NetAdapterSriov', - 'Disable-NetAdapterVmq', - 'Disable-NetAdapterPacketDirect', - 'Disable-NetAdapterUso', - 'Enable-NetAdapter', - 'Enable-NetAdapterBinding', - 'Enable-NetAdapterChecksumOffload', - 'Enable-NetAdapterEncapsulatedPacketTaskOffload', - 'Enable-NetAdapterIPsecOffload', - 'Enable-NetAdapterLso', - 'Enable-NetAdapterPowerManagement', - 'Enable-NetAdapterQos', - 'Enable-NetAdapterRdma', - 'Enable-NetAdapterRsc', - 'Enable-NetAdapterRss', - 'Enable-NetAdapterSriov', - 'Enable-NetAdapterVmq', - 'Enable-NetAdapterPacketDirect', - 'Enable-NetAdapterUso', - 'Get-NetAdapter', - 'Get-NetAdapterAdvancedProperty', - 'Get-NetAdapterBinding', - 'Get-NetAdapterChecksumOffload', - 'Get-NetAdapterEncapsulatedPacketTaskOffload', - 'Get-NetAdapterHardwareInfo', - 'Get-NetAdapterIPsecOffload', - 'Get-NetAdapterLso', - 'Get-NetAdapterPowerManagement', - 'Get-NetAdapterQos', - 'Get-NetAdapterRdma', - 'Get-NetAdapterRsc', - 'Get-NetAdapterRss', - 'Get-NetAdapterSriov', - 'Get-NetAdapterSriovVf', - 'Get-NetAdapterStatistics', - 'Get-NetAdapterVmq', - 'Get-NetAdapterVMQQueue', - 'Get-NetAdapterVPort', - 'Get-NetAdapterPacketDirect', - 'Get-NetAdapterUso', - 'New-NetAdapterAdvancedProperty', - 'Remove-NetAdapterAdvancedProperty', - 'Rename-NetAdapter', - 'Reset-NetAdapterAdvancedProperty', - 'Restart-NetAdapter', - 'Set-NetAdapter', - 'Set-NetAdapterAdvancedProperty', - 'Set-NetAdapterBinding', - 'Set-NetAdapterChecksumOffload', - 'Set-NetAdapterEncapsulatedPacketTaskOffload', - 'Set-NetAdapterIPsecOffload', - 'Set-NetAdapterLso', - 'Set-NetAdapterPowerManagement', - 'Set-NetAdapterQos', - 'Set-NetAdapterRdma', - 'Set-NetAdapterRsc', - 'Set-NetAdapterRss', - 'Set-NetAdapterSriov', - 'Set-NetAdapterVmq', - 'Set-NetAdapterPacketDirect', - 'Set-NetAdapterUso' - ) - - CmdletsToExport = @() - - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.cdxml b/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.cdxml deleted file mode 100644 index 2ed6921..0000000 --- a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.cdxml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - 1.0 - NetConnectionProfile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.format.ps1xml deleted file mode 100644 index df752b1..0000000 --- a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.format.ps1xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - MSFT_NetConnectionProfile - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetConnectionProfile - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetConnectionProfile - - - - - - - Name - - - InterfaceAlias - - - InterfaceIndex - - - NetworkCategory - - - IPv4Connectivity - - - IPv6Connectivity - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.types.ps1xml deleted file mode 100644 index 2102fea..0000000 --- a/newton-cn/bin/v1.0/Modules/NetConnection/MSFT_NetConnectionProfile.types.ps1xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetConnectionProfile - - - NetworkCategory - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.NetworkCategory]($this.PSBase.CimInstanceProperties['NetworkCategory'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NetworkCategory'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.NetworkCategory]$newValue - - - - IPv4Connectivity - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.IPv4Connectivity]($this.PSBase.CimInstanceProperties['IPv4Connectivity'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IPv4Connectivity'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.IPv4Connectivity]$newValue - - - - IPv6Connectivity - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.IPv6Connectivity]($this.PSBase.CimInstanceProperties['IPv6Connectivity'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IPv6Connectivity'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetConnectionProfile.IPv6Connectivity]$newValue - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetConnection/NetConnection.psd1 b/newton-cn/bin/v1.0/Modules/NetConnection/NetConnection.psd1 deleted file mode 100644 index a8ebec4..0000000 --- a/newton-cn/bin/v1.0/Modules/NetConnection/NetConnection.psd1 +++ /dev/null @@ -1,15 +0,0 @@ - -@{ - ModuleVersion = '1.0.0.0' - NestedModules = @("MSFT_NetConnectionProfile.cdxml") - FormatsToProcess = @("MSFT_NetConnectionProfile.format.ps1xml") - TypesToProcess = @("MSFT_NetConnectionProfile.types.ps1xml") - HelpInfoUri = "http://go.microsoft.com/fwlink/?linkid=390795" - GUID = '{CE4FF86E-9416-4f2d-A869-C860AC543B5E}' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - PowerShellVersion = '5.1' - Copyright = '© Microsoft Corporation. All rights reserved.' - FunctionsToExport = @("Get-NetConnectionProfile", "Set-NetConnectionProfile") - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetDiagnostics/Get-NetView.psm1 b/newton-cn/bin/v1.0/Modules/NetDiagnostics/Get-NetView.psm1 deleted file mode 100644 index 95b4a58..0000000 --- a/newton-cn/bin/v1.0/Modules/NetDiagnostics/Get-NetView.psm1 +++ /dev/null @@ -1,2500 +0,0 @@ -<# -.SYNOPSIS - Collects data on system and network configuration for diagnosing Microsoft Networking. -.DESCRIPTION - Collects comprehensive configuration data to aid in troubleshooting Microsoft Network issues. - Data is collected from the following sources: - - Get-NetView metadata (path, args, etc.) - - Environment (OS, hardware, etc.) - - Physical, virtual, Container, NICs - - Virtual Machine configuration - - Virtual Switches, Bridges, NATs - - Device Drivers - - Performance Counters - - Logs, Traces, etc. - - The data is collected in a folder on the Desktop (by default), which is zipped - on completion. Send only the .zip file to Microsoft. - - The output is most easily viewed with Visual Studio Code or similar editor with a navigation panel. - - This module is a stable snapshot that's updated with each Windows feature update. - The latest changes can be found on GitHub at https://github.com/Microsoft/SDN/ -.PARAMETER OutputDirectory - Optional path to the directory where the output should be saved. Can be either a relative or an absolute path. - If unspecified, the current user's Desktop will be used by default. -.PARAMETER ExtraCommands - List of additional commands to run, formatted as Strings. Output is saved to the CustomModule directory. You can - use {0} as a placeholder for the CustomModule directory location, and it will be formatted in. This allows you to - copy or save additional files to the final output. - For example, 'echo "Hello, World!" > {0}\MyFile.txt' will save to \CustomModule\MyFile.txt -.PARAMETER SkipAdminCheck - If this switch is present, then the check for administrator privileges will be skipped. - Note that less data may be collected and the results may be of limited use. -.EXAMPLE - Get-NetView -OutputDirectory ".\" - Runs Get-NetView and outputs to the current working directory. -.EXAMPLE - Get-NetView -SkipAdminCheck - Runs Get-NetView without verifying administrator privileges and outputs to the Desktop. -.NOTES - Feature Request List - - Get-WinEvent and system logs: https://technet.microsoft.com/en-us/library/dd367894.aspx?f=255&MSPPError=-2147217396 - - Convert NetSH to NetEvent PS calls. - - Perf Profile acqusition - - Remote powershell support - - Cluster member execution support via remote powershell - - See this command to get VFs on vSwitch (see text in below functions) - > Get-NetAdapterSriovVf -SwitchId 2 -.LINK - https://github.com/Microsoft/SDN -#> - -# -# Common Functions -# - -$ExecFunctions = { - # Global vars - $columns = 4096 - - function ExecCommandText { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Command, - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Output - ) - - # Mirror command execution context - $context = "$env:USERNAME @ ${env:COMPUTERNAME}:" - Write-Output $context | Out-File -Encoding ascii -Append $Output - - # Mirror command to execute - $cmdMirror = "$(prompt)$Command" - Write-Output $cmdMirror | Out-File -Encoding ascii -Append $Output - } # ExecCommandText() - - function ExecCommandPrivate { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Command, - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Output - ) - - ExecCommandText -Command ($Command) -Output $Output - - # Execute Command and redirect to file. Useful so users know what to run!!! - Invoke-Expression $Command | Out-File -Encoding ascii -Append $Output - } #ExecCommandPrivate() - - enum CommandStatus { - NotTested # Indicates problem with TestCommand - Unavailable # [Part of] the command doesn't exist - Failed # An error prevented successful execution - Succeeded # No errors or exceptions - } - - function TestCommand { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Command - ) - - $oldGlobalErrorActionPreference = $Global:ErrorActionPreference - $result = [CommandStatus]::NotTested - $failure = $null - - try { - # pre-execution cleanup - $error.clear() - - # Instrument the validate command for silent output - #$tmp = "$Command -ErrorAction 'SilentlyContinue' | Out-Null" - $tmp = "$Command | Out-Null" - - # ErrorAction MUST be Stop for try catch to work. - $Global:ErrorActionPreference = "Stop" - - # Redirect all error output to $null to encompass all possible errors - #Write-Host $tmp -ForegroundColor Yellow - Invoke-Expression $tmp 2> $null - if ($error -ne $null) { - # Some PS commands are incorrectly implemented in return code - # and require detecting SilentlyContinue - if (-not ($tmp -like "*SilentlyContinue*")) { - throw $error[0] - } - } - - # This is only reachable in success case - $result = [CommandStatus]::Succeeded - } catch [Management.Automation.CommandNotFoundException] { - $result = [CommandStatus]::Unavailable - } catch { - $result = [CommandStatus]::Failed - $failure = $error[0] | Out-String - } finally { - # post-execution cleanup to avoid false positives - $Global:ErrorActionPreference = $oldGlobalErrorActionPreference - $error.clear() - } - - return $result, $failure - } # TestCommand() - - # Powershell cmdlets have inconsistent implementations in command error handling. This function - # performs a validation of the command prior to formal execution and will log any failures. - function ExecCommand { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Command, - [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String] $Output, - [parameter(Mandatory=$false)] [Switch] $Trusted - ) - - if ($Trusted) { - # Skip command validation - Write-Host -ForegroundColor Cyan "$Command" - ExecCommandPrivate -Command $Command -Output $Output - } else { - $result, $failure = TestCommand -Command $Command - - if ($result -eq [CommandStatus]::Succeeded) { - Write-Host -ForegroundColor Green "$Command" - ExecCommandPrivate -Command $Command -Output $Output - } else { - Write-Warning "[Command $result] $Command" - - Write-Output "[Command $result]" | Out-File -Encoding ascii -Append $Output - Write-Output "$Command" | Out-File -Encoding ascii -Append $Output - Write-Output "$failure" | Out-File -Encoding ascii -Append $Output - Write-Output "`n`n" | Out-File -Encoding ascii -Append $Output - } - } - } # ExecCommand() - - function TryCmd { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ScriptBlock] $ScriptBlock - ) - - try { - $out = &$ScriptBlock - } catch { - $out = $null - } - - # Returning $null will cause foreach to iterate once - # unless TryCmd call is in parentheses. - if ($out -eq $null) { - $out = @() - } - - return $out - } -} # $ExecFunctions - -. $ExecFunctions # import into script context - -function Start-Thread { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [ScriptBlock] $ScriptBlock, - [parameter(Mandatory=$false)] [ValidateScript({Test-Path $_ -PathType Container})] [String] $StartPath = ".", - [parameter(Mandatory=$false)] [Hashtable] $Params = @{} - ) - - $ps = [PowerShell]::Create() - - $ps.Runspace = [RunspaceFactory]::CreateRunspace() - $ps.Runspace.Open() - $null = $ps.AddScript("Set-Location ""$(Resolve-Path $StartPath)""") - $null = $ps.AddScript($ExecFunctions) # import into thread context - $null = $ps.AddScript($ScriptBlock).AddParameters($Params) - - $async = $ps.BeginInvoke() - - return @{Name=$ScriptBlock.Ast.Name; AsyncResult=$async; PowerShell=$ps} -} # Start-Thread() - -function Remove-Thread { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [Hashtable] $Thread - ) - Write-Host "Stopping thread $($Thread.Name)..." - $Thread.PowerShell.Stop() - $Thread.PowerShell.Dispose() - $Thread.PowerShell.Runspace.Close() -} # Remove-Thread - -function StreamThread { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [Hashtable] $Thread - ) - - Write-Host "`nOn thread: $($Thread.Name)" - Write-Host "----------------------------------------------" - - do { - Start-Sleep -Milliseconds 50 - # TODO output errors/other streams - $Thread.PowerShell.Streams.Information | Out-Host - $Thread.PowerShell.Streams.Information.Clear() - } until ($Thread.AsyncResult.IsCompleted) - - $Thread.PowerShell.EndInvoke($Thread.AsyncResult) -} # StreamThread() - -# -# Data Collection Functions -# - -function NetIpNicWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $name = $NicName - $dir = $OutDir - - $file = "Get-NetIpAddress.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIpAddress -InterfaceAlias ""$name"" | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetIpAddress -InterfaceAlias ""$name"" | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIpAddress -InterfaceAlias ""$name"" | Format-List", - "Get-NetIpAddress -InterfaceAlias ""$name"" | Format-List -Property *", - "Get-NetIpAddress | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetIPInterface.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIPInterface -InterfaceAlias ""$name"" | Out-String -Width $columns", - "Get-NetIPInterface -InterfaceAlias ""$name"" | Format-Table -AutoSize", - "Get-NetIPInterface -InterfaceAlias ""$name"" | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIPInterface | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNeighbor.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNeighbor -InterfaceAlias ""$name"" | Out-String -Width $columns", - "Get-NetNeighbor -InterfaceAlias ""$name"" | Format-Table -AutoSiz | Out-String -Width $columns", - "Get-NetNeighbor -InterfaceAlias ""$name"" | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNeighbor | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetRoute.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetRoute -InterfaceAlias ""$name"" | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetRoute -InterfaceAlias ""$name"" | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetRoute | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # NetIpNicWorker() - -function NetIpNic { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $name = $NicName - - $dir = (Join-Path -Path $OutDir -ChildPath ("NetIp")) - New-Item -ItemType directory -Path $dir | Out-Null - NetIpNicWorker -NicName $name -OutDir $dir -} # NetIpNic() - -function NetIpWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = $OutDir - - $file = "Get-NetIpAddress.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIpAddress | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetIpAddress | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIpAddress | Format-List", - "Get-NetIpAddress | Format-List -Property *", - "Get-NetIpAddress | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetIPInterface.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIPInterface | Out-String -Width $columns", - "Get-NetIPInterface | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetIPInterface | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIPInterface | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNeighbor.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNeighbor | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNeighbor | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNeighbor | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetIPv4Protocol.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIPv4Protocol | Out-String -Width $columns", - "Get-NetIPv4Protocol | Format-List -Property *", - "Get-NetIPv4Protocol | Format-Table -Property * -AutoSize", - "Get-NetIPv4Protocol | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIPv4Protocol | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetIPv6Protocol.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetIPv6Protocol | Out-String -Width $columns", - "Get-NetIPv6Protocol | Format-List -Property *", - "Get-NetIPv6Protocol | Format-Table -Property * -AutoSize", - "Get-NetIPv6Protocol | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetIPv6Protocol | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetOffloadGlobalSetting.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetOffloadGlobalSetting | Out-String -Width $columns", - "Get-NetOffloadGlobalSetting | Format-List -Property *", - "Get-NetOffloadGlobalSetting | Format-Table -AutoSize", - "Get-NetOffloadGlobalSetting | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetOffloadGlobalSetting | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetPrefixPolicy.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetPrefixPolicy | Format-Table -AutoSize", - "Get-NetPrefixPolicy | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetPrefixPolicy | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetRoute.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetRoute | Format-Table -AutoSize", - "Get-NetRoute | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetRoute | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetTCPConnection.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetTCPConnection | Format-Table -AutoSize", - "Get-NetTCPConnection | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetTCPConnection | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command ($cmd) -Output $out - } - - $file = "Get-NetTcpSetting.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetTcpSetting | Format-Table -AutoSize", - "Get-NetTcpSetting | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetTcpSetting | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command ($cmd) -Output $out - } - - $file = "Get-NetTransportFilter.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetTransportFilter | Format-Table -AutoSize", - "Get-NetTransportFilter | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetTransportFilter | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetUDPEndpoint.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetUDPEndpoint | Format-Table -AutoSize", - "Get-NetUDPEndpoint | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetUDPEndpoint | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetUDPSetting.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetUDPSetting | Format-Table -AutoSize", - "Get-NetUDPSetting | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetUDPSetting | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # NetIpWorker() - -function NetIp { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("NetIp")) - New-Item -ItemType directory -Path $dir | Out-Null - NetIpWorker -OutDir $dir -} # NetIp() - -function NetNatWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = $OutDir - - $file = "Get-NetNat.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNat | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNat | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNat | Format-List", - "Get-NetNat | Format-List -Property *", - "Get-NetNat | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNatExternalAddress.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNatExternalAddress | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNatExternalAddress | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNatExternalAddress | Format-List", - "Get-NetNatExternalAddress | Format-List -Property *", - "Get-NetNatExternalAddress | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNatGlobal.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNatGlobal | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNatGlobal | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNatGlobal | Format-List", - "Get-NetNatGlobal | Format-List -Property *", - "Get-NetNatGlobal | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNatSession.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNatSession | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNatSession | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNatSession | Format-List", - "Get-NetNatSession | Format-List -Property *", - "Get-NetNatSession | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetNatStaticMapping.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetNatStaticMapping | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetNatStaticMapping | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetNatStaticMapping | Format-List", - "Get-NetNatStaticMapping | Format-List -Property *", - "Get-NetNatStaticMapping | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - -} # NetNatWorker - -function NetNat { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("NetNat")) - New-Item -ItemType directory -Path $dir | Out-Null - NetNatWorker -OutDir $dir -} # NetNat() - -function NetAdapterWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $name = $NicName - $dir = $OutDir - - $file = "Get-NetAdapter.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapter -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapter -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapter | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterAdvancedProperty.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterAdvancedProperty -Name ""$name"" -AllProperties | Sort-Object RegistryKeyword | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetAdapterAdvancedProperty -Name ""$name"" -AllProperties -IncludeHidden | Sort-Object RegistryKeyword | Format-Table -AutoSize | Out-String -Width $columns", - "Get-NetAdapterAdvancedProperty -Name ""$name"" -AllProperties -IncludeHidden | Format-List -Property *", - "Get-NetAdapterAdvancedProperty -Name ""$name"" -AllProperties -IncludeHidden | Format-Table -Property * | Out-String -Width $columns", - "Get-NetAdapterAdvancedProperty | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterBinding.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterBinding -Name ""$name"" -AllBindings -IncludeHidden | Sort-Object ComponentID | Out-String -Width $columns", - "Get-NetAdapterBinding -Name ""$name"" -AllBindings -IncludeHidden | Format-List -Property *", - "Get-NetAdapterBinding | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterChecksumOffload.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterChecksumOffload -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterChecksumOffload -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterChecksumOffload | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterLso.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterLso -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterLso -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterLso | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterRss.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterRss -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterRss -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterRss | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterStatistics.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterStatistics -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterStatistics -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterStatistics | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterEncapsulatedPacketTaskOffload.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterEncapsulatedPacketTaskOffload -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterEncapsulatedPacketTaskOffload -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterEncapsulatedPacketTaskOffload | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterHardwareInfo.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterHardwareInfo -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterHardwareInfo -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterHardwareInfo | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterIPsecOffload.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterIPsecOffload -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterIPsecOffload -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterIPsecOffload | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterPowerManagement.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterPowerManagement -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterPowerManagement -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterPowerManagement | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterQos.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterQos -Name ""$name"" -IncludeHidden -ErrorAction SilentlyContinue | Out-String -Width $columns", - "Get-NetAdapterQos -Name ""$name"" -IncludeHidden -ErrorAction SilentlyContinue | Format-List -Property *", - "Get-NetAdapterQos | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterRdma.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterRdma -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterRdma -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterRdma | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterPacketDirect.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterPacketDirect -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterPacketDirect -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterPacketDirect | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterRsc.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterRsc -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterRsc -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterRsc | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterSriov.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterSriov -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterSriov -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterSriov | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterSriovVf.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterSriovVf -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterSriovVf -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterSriovVf | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterVmq.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterVmq -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterVmq -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterVmq | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterVmqQueue.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterVmqQueue -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterVmqQueue -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterVmqQueue | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetAdapterVPort.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterVPort -Name ""$name"" -IncludeHidden | Out-String -Width $columns", - "Get-NetAdapterVPort -Name ""$name"" -IncludeHidden | Format-List -Property *", - "Get-NetAdapterVPort | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # NetAdapterWorker() - -function NetAdapterWorkerPrepare { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicDesc, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Variables - $out = $OutDir - $desc = $NicDesc - - # Create dir for each NIC - $nic = Get-NetAdapter -InterfaceDescription $desc - $idx = $nic.IfIndex - $name = $nic.Name - $desc = $NicDesc - $nictype = "pNic" - $title = "$nictype.$idx.$name.$desc" - $dir = (Join-Path -Path $out -ChildPath "$title") - New-Item -ItemType directory -Path $dir | Out-Null - - Write-Host "" - Write-Host "Processing: $title" - Write-Host "----------------------------------------------" - NetIpNic -NicName $name -OutDir $dir - NetAdapterWorker -NicName $name -OutDir $dir - NicVendor -NicName $name -OutDir $dir -} # NetAdapterWorkerPrepare() - - -function LbfoWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $LbfoName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Names - $name = $LbfoName - $out = $OutDir - - $file = "Get-NetLbfoTeam.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetLbfoTeam -Name ""$name""", - "Get-NetLbfoTeam -Name ""$name"" | Format-List -Property *", - "Get-NetLbfoTeam | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetLbfoTeamNic.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetLbfoTeamNic -Team ""$name""", - "Get-NetLbfoTeamNic -Team ""$name"" | Format-List -Property *", - "Get-NetLbfoTeamNic | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-NetLbfoTeamMember.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetLbfoTeamMember -Team ""$name""", - "Get-NetLbfoTeamMember -Team ""$name"" | Format-List -Property *", - "Get-NetLbfoTeamMember | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - # Report the TNIC(S) - foreach ($tnic in TryCmd {Get-NetLbfoTeamNic -Team $name}) { - NetAdapterWorkerPrepare -NicDesc $tnic.InterfaceDescription -OutDir $OutDir - } - - # Report the NIC Members - foreach ($mnic in TryCmd {Get-NetLbfoTeamMember -Team $name}) { - NetAdapterWorkerPrepare -NicDesc $mnic.InterfaceDescription -OutDir $OutDir - } -} # LbfoWorker() - -function LbfoWorkerPrepare { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $LbfoName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Variable - $name = $LbfoName - - $dir = (Join-Path -Path $OutDir -ChildPath ("LBFO.$name")) - New-Item -ItemType directory -Path $dir | Out-Null - - Write-Host "Processing: $name" - Write-Host "----------------------------------------------" - LbfoWorker -LbfoName $name -OutDir $dir -} # LbfoWorkerPrepare() - -function LbfoDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize variables - $out = $OutDir - - foreach ($lbfo in TryCmd {Get-NetLbfoTeam}) { - $name = $lbfo.Name - - # Skip all vSwitch Protocol NICs since the LBFO and member reporting will occur as part of - # vSwitch reporting. - $match = $false - - foreach ($vms in TryCmd {Get-VMSwitch | where {$_.SwitchType -ne "Internal"}}) { - if ($vms.NetAdapterInterfaceDescriptions -contains (Get-NetAdapter -Name $name).InterfaceDescription) { - $match = $true - break - } - } - - if (-not $match) { - LbfoWorkerPrepare -LbfoName $name -OutDir $out - } - } -} # LbfoDetail() - -function ProtocolNicDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Variables - $out = $OutDir - - # Distinguish between LBFO from standard PTNICs and create the hierarchies accordingly - foreach ($desc in TryCmd {(Get-VMSwitch -Name "$VMSwitchName").NetAdapterInterfaceDescriptions}) { - $nic = Get-NetAdapter -InterfaceDescription $desc - if ($nic.DriverFileName -like "NdisImPlatform.sys") { - LbfoWorkerPrepare -LbfoName $nic.Name -OutDir $out - } else { - NetAdapterWorkerPrepare -NicDesc $desc -OutDir $out - } - } -} # ProtocolNicDetail() - -function NativeNicDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Variables - $out = $OutDir - - foreach ($nic in Get-NetAdapter) { - $native = $true - - # Skip vSwitch Host vNICs by checking the driver - if ($nic.DriverFileName -like "vmswitch.sys") { - continue - } - - # Skip LBFO TNICs by checking the driver - if ($nic.DriverFileName -like "NdisImPlatform.sys") { - continue - } - - # Skip all vSwitch Protocol NICs - foreach ($vms in TryCmd {Get-VMSwitch | where {$_.SwitchType -ne "Internal"}}) { - if ($vms.NetAdapterInterfaceDescriptions -contains $nic.InterfaceDescription) { - $native = $false - break - } - } - - # Skip LBFO Team Member Adapters - foreach ($lbfonic in TryCmd {Get-NetLbfoTeamMember}) { - if ($nic.InterfaceDescription -eq $lbfonic.InterfaceDescription) { - $native = $false - break - } - } - - if ($native) { - NetAdapterWorkerPrepare -NicDesc $nic.InterfaceDescription -OutDir $out - } - } -} # NativeNicDetail() - -function ChelsioDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath "ChelsioDetail") - New-Item -ItemType Directory -Path $dir | Out-Null - - # Collect Chelsio related event logs and miscellaneous details - $file = "ChelsioDetail-Eventlog-BusDevice.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-EventLog -LogName System -Source ""*chvbd*"" -ErrorAction SilentlyContinue | Format-List", - "Get-EventLog -LogName System -Source ""*cht4vbd*"" -ErrorAction SilentlyContinue | Format-List" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "ChelsioDetail-Eventlog-NetDevice.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-EventLog -LogName System -Source ""*chndis*"" -ErrorAction SilentlyContinue | Format-List", - "Get-EventLog -LogName System -Source ""*chnet*"" -ErrorAction SilentlyContinue | Format-List", - "Get-EventLog -LogName System -Source ""*cht4ndis*"" -ErrorAction SilentlyContinue | Format-List" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "ChelsioDetail-Misc.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "verifier /query", - "Get-PnpDevice -FriendlyName ""*Chelsio*Enumerator*"" | Get-PnpDeviceProperty -KeyName DEVPKEY_Device_DriverVersion | Format-Table -Autosize" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - # Basic sanity check. Most of Chelsio related logs are collected using cxgbtool.exe. - # So if cxgbtool.exe is not there in System32 forlder, then exit from the function. - $cxgbtool = Get-Item "$env:windir\System32\cxgbtool.exe" -ErrorAction SilentlyContinue - if ($cxgbtool.Exists -eq $null) { - Write-Warning "Unable to collect Chelsio debug logs as cxgbtool is not present in $env:windir\system32" - return $null - } - - $ifName = $NicName - $ifIndex = (Get-NetAdapter $NicName).ifIndex - $ifHwInfo = Get-NetAdapterHardwareInfo -Name "$ifName" - $dirBusName = "BusDev_$($ifHwInfo.Bus)_$($ifHwInfo.Device)_$($ifHwInfo.Function)" - $dirBus = (Join-Path -Path $dir -ChildPath $dirBusName) - - if ($Global:ChelsioOncePerASIC -notcontains $dirBusName) { - $Global:ChelsioOncePerASIC += @($dirBusName) # expensive, avoid duplicate effort - New-Item -ItemType Directory -Path $dirBus | Out-Null - - # Enumerate VBD - [String] $ifNameVbd = $null - [Array] $PnPDevices = Get-PnpDevice -FriendlyName "*Chelsio*Enumerator*" | where {$_.Status -eq "OK"} - for ($i = 0; $i -lt $PnPDevices.Count; $i++) { - $instanceId = $PnPDevices[$i].InstanceId - $locationInfo = (Get-PnpDeviceProperty -InstanceId "$instanceId" -KeyName "DEVPKEY_Device_LocationInfo").Data - if ($ifHwInfo.LocationInformationString -eq $locationInfo) { - $ifNameVbd = "vbd$i" - break - } - } - - if ([String]::IsNullOrEmpty($ifNameVbd)) { - Write-Warning "Couldn't resolve interface name for bus device" - return $null - } - - $file = "ChelsioDetail-Cudbg.txt" - $CollectFile = "Cudbg-Collect.dmp" - $ReadFlashFile = "Cudbg-Readflash.dmp" - $out = (Join-Path -Path $dirBus -ChildPath $file) - $OutCollect = (Join-Path -Path $dirBus -ChildPath $CollectFile) - $OutReadFlash = (Join-Path -Path $dirBus -ChildPath $ReadFlashFile) - [String []] $cmds = "cxgbtool.exe $ifNameVbd cudbg collect all ""$OutCollect""", - "cxgbtool.exe $ifNameVbd cudbg readflash ""$OutReadFlash""" - foreach ($cmd in $cmds) { - ExecCommand -Trusted -Command $cmd -Output $out - } - - $file = "ChelsioDetail-Firmware-BusDevice$i.txt" - $out = (Join-Path -Path $dirBus -ChildPath $file) - [String []] $cmds = "cxgbtool.exe $ifNameVbd firmware mbox 1", - "cxgbtool.exe $ifNameVbd firmware mbox 2", - "cxgbtool.exe $ifNameVbd firmware mbox 3", - "cxgbtool.exe $ifNameVbd firmware mbox 4", - "cxgbtool.exe $ifNameVbd firmware mbox 5", - "cxgbtool.exe $ifNameVbd firmware mbox 6", - "cxgbtool.exe $ifNameVbd firmware mbox 7" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "ChelsioDetail-Hardware-BusDevice$i.txt" - $flashFile = "Hardware-BusDevice$i-flash.dmp" - $out = (Join-Path -Path $dirBus -ChildPath $file) - $OutFlash = (Join-Path -Path $dirBus -ChildPath $flashFile) - [String []] $cmds = "cxgbtool.exe $ifNameVbd hardware sgedbg", - "cxgbtool.exe $ifNameVbd hardware flash ""$OutFlash""" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - } # $Global:ChelsioOncePerASIC - - $dirNetName = "NetDev_$ifIndex" - $dirNet = (Join-Path -Path $dir -ChildPath $dirNetName) - New-Item -ItemType Directory -Path $dirNet | Out-Null - - # Enumerate NIC - [Array] $NetDevices = Get-NetAdapter -InterfaceDescription "*Chelsio*" | where {$_.Status -eq "Up"} | Sort-Object -Property MacAddress - $ifNameNic = $null - for ($i = 0; $i -lt $NetDevices.Count; $i++) { - if ($ifName -eq $NetDevices[$i].Name) { - $ifNameNic = "nic$i" - break - } - } - - if ([String]::IsNullOrEmpty($ifNameNic)) { - Write-Warning "Couldn't resolve interface name for Network device(ifIndex:$ifIndex)" - return $null - } - - $file = "ChelsioDetail-Debug.txt" - $out = (Join-Path -Path $dirNet -ChildPath $file) - [String []] $cmds = "cxgbtool.exe $ifNameNic debug filter", - "cxgbtool.exe $ifNameNic debug qsets", - "cxgbtool.exe $ifNameNic debug qstats txeth rxeth txvirt rxvirt txrdma rxrdma txnvgre rxnvgre", - "cxgbtool.exe $ifNameNic debug dumpctx", - "cxgbtool.exe $ifNameNic debug version", - "cxgbtool.exe $ifNameNic debug eps", - "cxgbtool.exe $ifNameNic debug qps", - "cxgbtool.exe $ifNameNic debug rdma_stats", - "cxgbtool.exe $ifNameNic debug stags", - "cxgbtool.exe $ifNameNic debug l2t" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "ChelsioDetail-Hardware.txt" - $out = (Join-Path -Path $dirNet -ChildPath $file) - [String []] $cmds = "cxgbtool.exe $ifNameNic hardware tid_info", - "cxgbtool.exe $ifNameNic hardware fec", - "cxgbtool.exe $ifNameNic hardware link_cfg", - "cxgbtool.exe $ifNameNic hardware pktfilter", - "cxgbtool.exe $ifNameNic hardware sensor" - foreach ($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } -} # ChelsioDetail() - -# ======================================================================== -# function stub for extension by IHV -# Copy and rename it, add your commands, and call it in NicVendor() below -# ======================================================================== -function MyVendorDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = Join-Path -Path $OutDir -ChildPath "MyVendorDetail" - - # Try to keep the layout of this block of code - # Feel free to copy it or wrap it in other control structures - # See other functions in this file for examples - $file = "$NicName.MyVendor.txt" - $out = Join-Path $dir $file - [String []] $cmds = "Command 1", - "Command 2", - "Command 3", - "etc." - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # MyVendorDetail() - -function NicVendor { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $NicName, # Get-NetAdapter output - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = $OutDir - - # Call appropriate vendor specific function - $pciId = (Get-NetAdapterAdvancedProperty -Name $NicName -AllProperties -RegistryKeyword "ComponentID").RegistryValue - switch -Wildcard($pciId) { - "CHT*BUS\chnet*" { - ChelsioDetail $NicName $dir - } - # Not implemented. See MyVendorDetail() for examples. - # - #"PCI\VEN_15B3*" { - # MellanoxDetail $Nic $dir - # - #} - #"PCI\VEN_8086*" { - # IntelDetail $Nic $dir - #} - default { - # Not implemented, not native, or N/A - } - } -} # NicVendor() - -function HostVNicWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $HostVNicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Names - $name = $HostVNicName - $dir = $OutDir - - $file = "Get-VMNetworkAdapter.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapter -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapter -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapter -ManagementOS| Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterAcl.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterAcl -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterAcl -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterAcl -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterExtendedAcl.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterExtendedAcl -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterExtendedAcl -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterExtendedAcl -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterFailoverConfiguration.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterFailoverConfiguration -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterFailoverConfiguration -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterFailoverConfiguration -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterIsolation.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterIsolation -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterIsolation -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterIsolation -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterRoutingDomainMapping.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterRoutingDomainMapping -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterRoutingDomainMapping -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterRoutingDomainMapping -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterTeamMapping.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterTeamMapping -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterTeamMapping -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterTeamMapping -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterVlan.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName ""$name"" | Out-String -Width $columns", - "Get-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName ""$name"" | Format-List -Property *", - "Get-VMNetworkAdapterVlan -ManagementOS | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # HostVNicWorker() - -function HostVNicDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - foreach ($nic in TryCmd {Get-VMNetworkAdapter -ManagementOS -SwitchName $VMSwitchName}) { - <# - Correlate to VMNic instance to NetAdapter instance view - Physical to Virtual Mapping. - ----------------------------- - Get-NetAdapter uses: - Name : vEthernet (VMS-Ext-Public) 2 - Get-VMNetworkAdapter uses: - Name : VMS-Ext-Public - - Thus we need to match the corresponding devices via DeviceID such that - we can execute VMNetworkAdapter and NetAdapter information for this hNIC - #> - $idx = 0 - foreach($pnic in (Get-NetAdapter -IncludeHidden)) { - if ($pnic.DeviceID -eq $nic.DeviceId) { - $pnicname = $pnic.Name - $idx = $pnic.IfIndex - } - } - - # Create dir for each NIC - $name = $nic.Name - $nictype = "hNic" - $title = "$nictype.$idx.$name" - $dir = (Join-Path -Path $OutDir -ChildPath "$title") - New-Item -ItemType directory -Path $dir | Out-Null - - Write-Host "Processing: $title" - Write-Host "----------------------------------------------" - NetIpNic -NicName $pnicname -OutDir $dir - HostVNicWorker -HostVNicName $name -OutDir $dir - NetAdapterWorker -NicName $pnicname -OutDir $dir - } -} # HostVNicDetail() - - -function VMNetworkAdapterWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMName, - [parameter(Mandatory=$true)] [String] $VMNicName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Names - $name = $VMNicName - $dir = $OutDir - - $file = "Get-VMNetworkAdapter.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapter -Name ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapter -Name ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapter * | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterAcl.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterAcl -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterAcl -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterAcl | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterExtendedAcl.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterExtendedAcl -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterExtendedAcl -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterExtendedAcl | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterFailoverConfiguration.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterFailoverConfiguration -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterFailoverConfiguration -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterFailoverConfiguration -VMName * | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterIsolation.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterIsolation -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterIsolation -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterIsolation | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterRoutingDomainMapping.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterRoutingDomainMapping -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterRoutingDomainMapping -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterRoutingDomainMapping | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterTeamMapping.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterTeamMapping -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterTeamMapping -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterTeamMapping -VMName * | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMNetworkAdapterVlan.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapterVlan -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMNetworkAdapterVlan -VMNetworkAdapterName ""$name"" -VMName ""$VMName"" | Format-List -Property *", - "Get-VMNetworkAdapterVlan | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # VMNetworkAdapterWorker() - -function VmNetworkAdapterDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMName, - [parameter(Mandatory=$true)] [String] $VmNicName, - [parameter(Mandatory=$true)] [String] $VmNicMac, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("VMNic.$VmNicName.$VmNicMac")) - New-Item -ItemType directory -Path $dir | Out-Null - - Write-Host "Processing: VMNic.$VmNicName.$VmNicMac" - Write-Host "--------------------------------------" - VMNetworkAdapterWorker -VMName $VMName -VMNicName $VmNicName -OutDir $dir -} # VmNetworkAdapterDetail() - -function VmWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Names - $dir = $OutDir - - $file = "Get-VM.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VM -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VM -VMName ""$VMName"" | Format-List -Property *", - "Get-VM | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMBios.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMBios -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMBios -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMFirmware.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMFirmware -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMFirmware -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMProcessor.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMProcessor -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMProcessor -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMMemory.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMMemory -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMMemory -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMVideo.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMVideo -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMVideo -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMHardDiskDrive.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMHardDiskDrive -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMHardDiskDrive -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMComPort.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMComPort -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMComPort -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSecurity.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSecurity -VMName ""$VMName"" | Out-String -Width $columns", - "Get-VMSecurity -VMName ""$VMName"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - -} # VmWorker() - -function VMNetworkAdapterPerVM { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - foreach ($vm in TryCmd {Get-VM}) { - $vmname = $vm.Name - $vmid = $vm.VMId - - Write-Host "Processing: VM.$vmname.$vmid" - Write-Host "--------------------------------------" - foreach ($nic in TryCmd {Get-VMNetworkAdapter -VMName $vmname}) { - if ($nic.SwitchName -eq $VMSwitchName) { - $vmquery = 0 - $dir = (Join-Path -Path $OutDir -ChildPath ("VM.$vmname")) - if (-not (Test-Path $dir)) { - New-Item -ItemType directory -Path $dir | Out-Null - $vmquery = 1 - } - - if ($vmquery) { - VmWorker -VMName $vmname -OutDir $dir - } - VmNetworkAdapterDetail -VMName $vmname -VmNicName $nic.Name -VmNicMac $nic.MacAddress -OutDir $dir - } - } - } -} # VMNetworkAdapterPerVM() - -function VMSwitchWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Normalize Names - $name = $VMSwitchName - $dir = $OutDir - - $file = "Get-VMSwitch.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitch -Name ""$name""", - "Get-VMSwitch -Name ""$name"" | Format-List -Property *", - "Get-VMSwitch -Name ""$name"" | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSwitchExtension.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitch -Name ""$name"" | Get-VMSwitchExtension | Format-List -Property *", - "Get-VMSwitch -Name ""$name"" | Get-VMSwitchExtension | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSwitchExtensionSwitchData.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitchExtensionSwitchData -SwitchName ""$name"" | Format-List -Property *", - "Get-VMSwitchExtensionSwitchData -SwitchName ""$name"" | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSwitchExtensionSwitchFeature.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitchExtensionSwitchFeature -SwitchName ""$name"" | Format-List -Property *" - #"Get-VMSwitchExtensionSwitchFeature -SwitchName ""$name"" | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSwitchTeam.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitchTeam -SwitchName ""$name"" | Format-List -Property *", - "Get-VMSwitchTeam -SwitchName ""$name"" | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSystemSwitchExtension.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSystemSwitchExtension | Format-List -Property *", - "Get-VMSystemSwitchExtension | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSwitchExtensionPortFeature.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitchExtensionPortFeature * | Format-List -Property *", - "Get-VMSwitchExtensionPortFeature * | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMSystemSwitchExtensionSwitchFeature.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSystemSwitchExtensionSwitchFeature", - "Get-VMSystemSwitchExtensionSwitchFeature | Format-List -Property *", - "Get-VMSystemSwitchExtensionSwitchFeature | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - <# - #Get-VMSwitchExtensionPortData -ComputerName $env:computername * - # Execute command list - $file = "Get-VMSwitchExtensionPortData.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-VMSwitchExtensionPortData -SwitchName ""$name"" | Format-List -Property *", - "Get-VMSwitchExtensionPortData -SwitchName ""$name"" | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - #> -} # VMSwitchWorker() - -function VfpExtensionWorker { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $name = $VMSwitchName - $out = $OutDir - - $dir = (Join-Path -Path $out -ChildPath ("VFP")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "VfpCtrl.help.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "vfpctrl.exe /h" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - - $switches = Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_VirtualEthernetSwitch - foreach ($switch in $switches) { - if ($switch.ElementName -eq $name) { - $currswitch = $switch - break - } - } - $ports = $currswitch.GetRelated("Msvm_EthernetSwitchPort", "Msvm_SystemDevice", $null, $null, $null, $null, $false, $null) - foreach ($port in $ports) { - $portGuid = $port.Name - $file = "VfpCtrl.PortGuid.$portGuid.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "vfpctrl.exe /list-space /port $portGuid", - "vfpctrl.exe /list-mapping /port $portGuid", - "vfpctrl.exe /list-rule /port $portGuid", - "vfpctrl.exe /port $portGuid /get-port-state" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - } - -} # VfpExtensionWorker() - -function VfpExtensionDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $VMSwitchName, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $name = $VMSwitchName - $out = $OutDir - - foreach ($ext in TryCmd {Get-VMSwitch -Name $name | Get-VMSwitchExtension}) { - if (($ext.Name -like "Microsoft Azure VFP Switch Extension") -and ($ext.Enabled -like "True")) { - VfpExtensionWorker -VMSwitchName $name -OutDir $out - } - } - -} # VfpExtensionDetail() - -function VMSwitchDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # FIXME!!! - ##See this command to get VFs on vSwitch - #Get-NetAdapterSriovVf -SwitchId 2 - - foreach ($switch in TryCmd {Get-VMSwitch}) { - $name = $switch.Name - $type = $switch.SwitchType - - $dir = (Join-Path -Path $OutDir -ChildPath ("VMSwitch.$type.$name")) - New-Item -ItemType directory -Path $dir | Out-Null - - Write-Host "Processing: $name" - Write-Host "----------------------------------------------" - VfpExtensionDetail -VMSwitchName $name -OutDir $dir - VMSwitchWorker -VMSwitchName $name -OutDir $dir - ProtocolNicDetail -VMSwitchName $name -OutDir $dir - HostVNicDetail -VMSwitchName $name -OutDir $dir - VMNetworkAdapterPerVM -VMSwitchName $name -OutDir $dir - } -} # VMSwitchDetail() - -function NetworkSummary { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $file = "Get-VMSwitch.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-VMSwitch | Sort-Object Name", - "Get-VMSwitch | Sort-Object Name | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-VMNetworkAdapter.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-VMNetworkAdapter -All | Sort-Object Name | Format-Table -AutoSize", - "Get-VMNetworkAdapter -All | Sort-Object Name | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetAdapter.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-NetAdapter -IncludeHidden | Sort-Object InterfaceDescription | Format-Table -AutoSize", - "Get-NetAdapter -IncludeHidden | Sort-Object InterfaceDescription | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetAdapterStatistics.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-NetAdapterStatistics -IncludeHidden | Sort-Object InterfaceDescription | Format-Table -Autosize | Out-String -Width $columns", - "Get-NetAdapterStatistics -IncludeHidden | Sort-Object InterfaceDescription | Format-Table -Property * -Autosize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetLbfoTeam.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-NetLbfoTeam | Sort-Object InterfaceDescription", - "Get-NetLbfoTeam | Sort-Object InterfaceDescription | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetIpAddress.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-NetIpAddress | Format-Table -Autosize", - "Get-NetIpAddress | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "ipconfig.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "ipconfig", - "ipconfig /allcompartments /all" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } -} # NetworkSummary() - -function SMBDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("SMB")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "Get-SmbClientNetworkInterface.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-SmbClientNetworkInterface | Sort-Object FriendlyName | Format-Table -AutoSize | Out-String -Width $columns", - "Get-SmbClientNetworkInterface | Format-List -Property *", - "Get-SmbClientNetworkInterface | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-SmbServerNetworkInterface.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-SmbServerNetworkInterface | Sort-Object FriendlyName | Format-Table -AutoSize | Out-String -Width $columns", - "Get-SmbServerNetworkInterface | Format-List -Property *", - "Get-SmbServerNetworkInterface | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-SmbClientConfiguration.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-SmbClientConfiguration", - "Get-SmbClientConfiguration | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-SmbMultichannelConnection.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-SmbMultichannelConnection | Sort-Object Name | Format-Table -AutoSize | Out-String -Width $columns", - "Get-SmbMultichannelConnection -IncludeNotSelected | Format-List -Property *", - "Get-SmbMultichannelConnection -SmbInstance CSV -IncludeNotSelected | Format-List -Property *", - "Get-SmbMultichannelConnection -SmbInstance SBL -IncludeNotSelected | Format-List -Property *", - "Get-SmbMultichannelConnection | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-SmbMultichannelConstraint.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-SmbMultichannelConstraint", - "Get-SmbMultichannelConstraint | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Smb-WindowsEvents.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-WinEvent -ListLog ""*SMB*"" | Format-List -Property *", - "Get-WinEvent -ListLog ""*SMB*"" | Get-WinEvent | ? Message -like ""*RDMA*"" | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # SMBDetail() - -function NetSetupDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("NetSetup")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "NetSetup.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Test-Path $env:SystemRoot\System32\NetSetupMig.log", - "Test-Path $env:SystemRoot\Panther\setupact.log", - "Test-Path $env:SystemRoot\INF\setupapi.*", - "Test-Path $env:SystemRoot\logs\NetSetup" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - # Copy over the logs - [String []] $cmds = "$env:SystemRoot\System32\NetSetupMig.log", - "$env:SystemRoot\Panther\setupact.log", - "$env:SystemRoot\INF\setupapi.*", - "$env:SystemRoot\logs\NetSetup" - ForEach($cmd in $cmds) { - if (Test-Path $cmd) { - $tcmd = "Copy-Item $cmd $dir -recurse -verbose 4>&1" - ExecCommand -Trusted -Command ($tcmd) -Output $out - } - } -} # NetSetupDetail() - -function HNSDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath "HNS") - New-Item -ItemType Directory -Path $dir | Out-Null - - $file = "HNSRegistry-1.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\hns -Recurse", - "Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\vmsmp -Recurse" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-HNSNetwork-1.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-HNSNetwork | ConvertTo-Json -Depth 10", - "Get-HNSNetwork | Get-Member" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-HNSEndpoint-1.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-HNSEndpoint | ConvertTo-Json -Depth 10", - "Get-HNSEndpoint | Get-Member" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - # HNS service stop -> start occurs after capturing the current HNS state info. - $hnsRunning = (Get-Service hns).Status -eq "Running" - try { - if ($hnsRunning) { - # Force stop to avoid command line prompt - net stop hns /y - } - - $file = "HNSData.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Copy-Item ""$env:ProgramData\Microsoft\Windows\HNS\HNS.data"" $dir 4>&1" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - } finally { - if ($hnsRunning) { - net start hns - } - } - - - # Acquire all settings again after stop -> start services - $file = "HNSRegistry-2.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\hns -Recurse", - "Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\vmsmp -Recurse" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-HNSNetwork-2.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-HNSNetwork | ConvertTo-Json -Depth 10", - "Get-HNSNetwork | Get-Member" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-HNSEndpoint-2.txt" - $out = (Join-Path $dir $file) - [String []] $cmds = "Get-HNSEndpoint | ConvertTo-Json -Depth 10", - "Get-HNSEndpoint | Get-Member" - foreach ($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - - #netsh trace start scenario=Virtualization provider=Microsoft-Windows-tcpip provider=Microsoft-Windows-winnat capture=yes captureMultilayer=yes capturetype=both report=disabled tracefile=$dir\server.etl overwrite=yes - #Start-Sleep 120 - #netsh trace stop -} # HNSDetail() - -function QosDetail { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("NetQoS")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "Get-NetQosDcbxSetting.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetQosDcbxSetting", - "Get-NetQosDcbxSetting | Format-List -Property *", - "Get-NetQosDcbxSetting | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetQosDcbxSetting | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetQosFlowControl.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetQosFlowControl", - "Get-NetQosFlowControl | Format-List -Property *", - "Get-NetQosFlowControl | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetQosFlowControl | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetQosPolicy.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetQosPolicy", - "Get-NetQosPolicy | Format-List -Property *", - "Get-NetQosPolicy | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetQosPolicy | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-NetQosTrafficClass.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-NetQosTrafficClass", - "Get-NetQosTrafficClass | Format-List -Property *", - "Get-NetQosTrafficClass | Format-Table -Property * -AutoSize | Out-String -Width $columns", - "Get-NetQosTrafficClass | Get-Member" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } -} # QosDetail() - -function ServicesDrivers { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("ServicesDrivers")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "sc.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "sc.exe queryex vmsp", - "sc.exe queryex vmsproxy" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-Service.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-Service ""*"" | Sort-Object Name | Format-Table -AutoSize", - "Get-Service ""*"" | Sort-Object Name | Format-Table -Property * -AutoSize" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-WindowsDriver.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-WindowsDriver -Online -All" # very slow, -Trusted to skip validation - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command $cmd -Output $out - } - - $file = "Get-WindowsEdition.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-WindowsEdition -Online" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "Get-WmiObject.Win32_PnPSignedDriver.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } -} # ServicesDrivers() - -function NetshTrace { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("Netsh")) - New-Item -ItemType directory -Path $dir | Out-Null - - <# Deprecated / DELETEME - #Figure out how to get this netsh rundown command executing under Powershell with logging... - $ndiswpp = "{DD7A21E6-A651-46D4-B7C2-66543067B869}" - $vmswpp = "{1F387CBC-6818-4530-9DB6-5F1058CD7E86}" - netsh trace start provider=$vmswpp level=1 keywords=0x00010000 provider=$ndiswpp level=1 keywords=0x02 correlation=disabled report=disabled overwrite=yes tracefile=$dir\NetRundown.etl - netsh trace stop - #> - - #$wpp_vswitch = "{1F387CBC-6818-4530-9DB6-5F1058CD7E86}" - #$wpp_ndis = "{DD7A21E6-A651-46D4-B7C2-66543067B869}" - - - # The sequence below triggers the ETW providers to dump their internal traces when the session starts. Thus allowing for capturing a - # snapshot of their logs/traces. - # - # NOTE: This does not cover IFR (in-memory) traces. More work needed to address said traces. - $file = "NetRundown.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "New-NetEventSession NetRundown -CaptureMode SaveToFile -LocalFilePath $dir\NetRundown.etl", - "Add-NetEventProvider ""{1F387CBC-6818-4530-9DB6-5F1058CD7E86}"" -SessionName NetRundown -Level 1 -MatchAnyKeyword 0x10000", - "Add-NetEventProvider ""{DD7A21E6-A651-46D4-B7C2-66543067B869}"" -SessionName NetRundown -Level 1 -MatchAnyKeyword 0x2", - "Start-NetEventSession NetRundown", - "Stop-NetEventSession NetRundown", - "Remove-NetEventSession NetRundown" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command $cmd -Output $out - } - - # - # The ETL file can be converted to text using the following command: - # netsh trace convert NetRundown.etl tmfpath=\\winbuilds\release\RS_ONECORE_STACK_SDN_DEV1\15014.1001.170117-1700\amd64fre\symbols.pri\TraceFormat - # Specifying a path to the TMF symbols. Output is attached. - - $file = "NetshDump.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "netsh dump" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "NetshStatistics.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "netsh interface ipv4 show icmpstats", - "netsh interface ipv4 show ipstats", - "netsh interface ipv4 show tcpstats", - "netsh interface ipv4 show udpstats", - "netsh interface ipv6 show ipstats", - "netsh interface ipv6 show tcpstats", - "netsh interface ipv6 show udpstats" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - #NetSetup, binding map, setupact logs amongst other things needed by NDIS folks. - Write-Host "`n" - Write-Host "Processing..." - $file = "NetshTrace.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "netsh -?", - "netsh trace show scenarios", - "netsh trace show providers", - "netsh trace diagnose scenario=NetworkSnapshot mode=Telemetry saveSessionTrace=yes report=yes ReportFile=$dir\Snapshot.cab" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command $cmd -Output $out - } -} # NetshTrace() - -function OneX { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("OneX")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "OneX.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "netsh lan show interface", - "netsh lan show profile" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } -} - -function Counters { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("Counters")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "CounterSetName.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-Counter -ListSet * | Sort-Object CounterSetName | Select-Object CounterSetName | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "CounterSetName.Paths.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "(Get-Counter -ListSet * | Sort-Object CounterSetName).Paths | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "CounterSetName.PathsWithInstances.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "(Get-Counter -ListSet * | Sort-Object CounterSetName).PathsWithInstances | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "CounterSet.Property.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "(Get-Counter -ListSet * | Sort-Object CounterSetName) | Format-List -Property * | Out-String -Width $columns", - "(Get-Counter -ListSet * | Sort-Object CounterSetName) | Format-Table -Property * | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command $cmd -Output $out - } - - $file = "CounterDetail" # used with 2 different extensions - $out = (Join-Path -Path $dir -ChildPath $file) - # Get paths for counters of interest - $cntrList = @("*Hyper*", "*vfp*", "*ip*", "*udp*", "*tcp*", "*icmp*", "*nat*", "*network*", "*rdma*", "*smb*", "*wfp*", "*Mellanox*", "*intel*") - $cntrPaths = Get-Counter -ListSet $cntrList -ErrorAction SilentlyContinue | Sort-Object CounterSetName | ForEach-Object { $_.Paths } - - Write-Host "Querying Perf Counters..." - # TODO should keep taking samples until all other jobs complete - $cntrReadings = Get-Counter -Counter $cntrPaths -MaxSamples 5 -SampleInterval 10 -ErrorAction SilentlyContinue - Write-Host "Exporting Results..." - $cntrReadings | Export-Counter -Path "$out.blg" -FileFormat BLG - $cntrReadings | Export-Counter -Path "$out.csv" -FileFormat CSV -} # Counters() - -function HwErrorReport { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $file = "WER.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "copy-item $env:ProgramData\Microsoft\Windows\WER $outdir -recurse -verbose 4>&1" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command ($cmd) -Output $out - } -} # HwErrorReport() - -function LogsReport { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $file = "WinEVT.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Copy-Item $env:SystemRoot\System32\winevt $outdir -Recurse -Verbose 4>&1" - ForEach($cmd in $cmds) { - ExecCommand -Trusted -Command ($cmd) -Output $out - } -} # LogsReport() - -function Metadata { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir, - [parameter(Mandatory=$true)] [Hashtable] $Params - ) - - $paramStr = if ($Params.Count -eq 0) {"None"} else {Write-Output @Params} - - $file = "Metadata.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Write-Output ""Version: $version"", ""Parameters: $paramStr"" | Out-String -Width $columns", - "Get-FileHash -Path $PSCommandPath -Algorithm ""SHA256"" | Format-List -Property * | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # Metadata() - -function Environment { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $file = "Environment.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-ItemProperty -Path ""HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion""", - "date", - #"Get-WinEvent -ProviderName eventlog | Where-Object {$_.Id -eq 6005 -or $_.Id -eq 6006}", - "wmic os get lastbootuptime", - "wmic cpu get name", - "systeminfo" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Verifier.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "verifier /querysettings" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } -} # Environment() - -function HostInfo { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $file = "Get-HotFix.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "get-hotfix | Sort-Object InstalledOn | Format-Table -AutoSize | Out-String -Width $columns", - "get-hotfix | Sort-Object InstalledOn | Format-Table -Property * -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMHostSupportedVersion.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-VMHostSupportedVersion | Format-Table -AutoSize | Out-String -Width $columns", - "Get-VMHostSupportedVersion | Format-List -Property *" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - $file = "Get-VMHostNumaNode.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-VMHostNumaNode" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - - <# - $file = "Get-VMHostNumaNodeStatus.txt" - $out = (Join-Path -Path $OutDir -ChildPath $file) - [String []] $cmds = "Get-VMHostNumaNodeStatus" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - #> -} # HostInfo() - -function CustomModule { - [CmdletBinding()] - Param( - [parameter(Mandatory=$false)] [String[]] $Commands, - [parameter(Mandatory=$true)] [String] $OutDir - ) - - if ($Commands.Count -eq 0) { - return - } - - $dir = (Join-Path $OutDir "CustomModule") - New-Item -ItemType Directory -Path $dir | Out-Null - - $file = "ExtraCommands.txt" - $out = (Join-Path $dir $file) - foreach ($cmd in $Commands) { - ExecCommand -Command ($cmd -f $dir) -Output $out - } -} # CustomModule() - -# -# Setup & Validation Functions -# - -function CheckAdminPrivileges { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [Bool] $SkipAdminCheck - ) - - if (-not $SkipAdminCheck) { - # Yep, this is the easiest way to do this. - $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") - if (-not $isAdmin) { - throw "Get-NetView : You do not have the required permission to complete this task. Please run this command in an Administrator PowerShell window or specify the -SkipAdminCheck option." - } - } -} # CheckAdminPrivileges() - -function NormalizeWorkDir { - [CmdletBinding()] - Param( - [parameter(Mandatory=$false)] [String] $OutputDirectory - ) - - # Output dir priority - $OutputDirectory, Desktop, Temp - $baseDir = if ($OutputDirectory) { - if (Test-Path $OutputDirectory) { - (Resolve-Path $OutputDirectory).Path # full path - } else { - throw "Get-NetView : The directory ""$OutputDirectory"" does not exist." - } - } elseif (($desktop = [Environment]::GetFolderPath("Desktop"))) { - $desktop - } else { - $env:TEMP - } - $workDirName = "msdbg.$env:COMPUTERNAME" - - return (Join-Path $baseDir $workDirName).TrimEnd("\") -} # NormalizeWorkDir() - -function EnvDestroy { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - If (Test-Path $OutDir) { - Remove-Item $OutDir -Recurse # Careful - Deletes $OurDir and all its contents - } -} # EnvDestroy() - -function EnvCreate { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - # Attempt to create working directory, fail gracefully otherwise - try { - New-Item -ItemType directory -Path $OutDir -ErrorAction Stop | Out-Null - } catch { - throw "Get-NetView : Failed to create directory ""$OutDir"" because " + $error[0] - } -} # EnvCreate() - -function EnvSetup { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - EnvDestroy $OutDir - EnvCreate $OutDir -} # EnvSetup() - -function CreateZip { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $Src, - [parameter(Mandatory=$true)] [String] $Out - ) - - If(Test-path $Out) { - Remove-item $Out - } - - Add-Type -assembly "system.io.compression.filesystem" - [io.compression.zipfile]::CreateFromDirectory($Src, $Out) -} # CreateZip() - - -function Sanity { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $OutDir - ) - - $dir = (Join-Path -Path $OutDir -ChildPath ("Sanity")) - New-Item -ItemType directory -Path $dir | Out-Null - - $file = "Get-ChildItem.txt" - $out = (Join-Path -Path $dir -ChildPath $file) - [String []] $cmds = "Get-ChildItem -Path $OutDir -Exclude $file -Recurse | Get-FileHash | Format-Table -AutoSize | Out-String -Width $columns" - ForEach($cmd in $cmds) { - ExecCommand -Command ($cmd) -Output $out - } - -} # Sanity() - -function Completion { - [CmdletBinding()] - Param( - [parameter(Mandatory=$true)] [String] $Src - ) - - $timestamp = $start | Get-Date -f yyyy.MM.dd_hh.mm.ss - - # Zip output folder - $outzip = "$Src-$timestamp.zip" - CreateZip -Src $Src -Out $outzip - - $dirs = (Get-ChildItem $Src -Recurse | Measure-Object -Property length -Sum) # out folder size - $hash = (Get-FileHash -Path $MyInvocation.PSCommandPath -Algorithm "SHA256").Hash # script hash - - # Display version and file save location - Write-Host "`n" - Write-Host "Diagnostics Data:" - Write-Host "-----------------" - Write-Host "Get-NetView" - Write-Host "Version: $version" - Write-Host "SHA256: $(if ($hash) {$hash} else {"N/A"})" - Write-Host "" - Write-Host $outzip - Write-Host "Size: $("{0:N2} MB" -f ((Get-Item $outzip).Length / 1MB))" - Write-Host "" - Write-Host $Src - Write-Host "Size: $("{0:N2} MB" -f ($dirs.sum / 1MB))" - Write-Host "Dirs: $((Get-ChildItem $Src -Directory -Recurse | Measure-Object).Count)" - Write-Host "Files: $((Get-ChildItem $Src -File -Recurse | Measure-Object).Count)" - Write-Host "" - Write-Host "Execution Time:" - Write-Host "---------------" - $delta = (Get-Date) - $Start - Write-Host "$($delta.Minutes) Min $($delta.Seconds) Sec" - Write-Host "`n" -} # Completion() - - -#=============================================== -# Main Program -#=============================================== -function Get-NetView { - [CmdletBinding()] - Param( - [parameter(Mandatory=$false)] - [ValidateScript({Test-Path $_ -PathType Container})] - [String] $OutputDirectory, - - [parameter(Mandatory=$false)] - [String[]] $ExtraCommands, - - [parameter(Mandatory=$false)] - [Switch] $SkipAdminCheck - ) - - $start = Get-Date - $version = "2018.05.03.0m" # Version within date context - - # Input Validation - CheckAdminPrivileges $SkipAdminCheck - $workDir = NormalizeWorkDir -OutputDirectory $OutputDirectory - - EnvSetup $workDir - Clear-Host - - # Start Run - try { - CustomModule -OutDir $workDir -Commands $ExtraCommands - - # concurrent execution of slow commands - $threads = if ($true) { - Start-Thread ${function:ServicesDrivers} -Params @{OutDir=$workDir} - Start-Thread ${function:NetshTrace} -Params @{OutDir=$workDir} - Start-Thread ${function:Counters} -Params @{OutDir=$workDir} - } - - Metadata -OutDir $workDir -Params $PSBoundParameters - Environment -OutDir $workDir - - NetworkSummary -OutDir $workDir - HwErrorReport -OutDir $workDir - LogsReport -OutDir $workDir - - NetSetupDetail -OutDir $workDir - VMSwitchDetail -OutDir $workDir - LbfoDetail -OutDir $workDir - NativeNicDetail -OutDir $workDir - OneX -OutDir $workDir - - QosDetail -OutDir $workDir - SMBDetail -OutDir $workDir - NetIp -OutDir $workDir - NetNat -OutDir $workDir - HNSDetail -OutDir $workDir - - # show thread output - $threads | foreach {StreamThread $_} - - # Tamper Detection - Sanity -OutDir $workDir - } catch { - throw $error[0] # try finally obfuscates error - } finally { - Write-Host "Removing background threads..." - $threads | foreach {Remove-Thread $_} - } - - Completion -Src $workDir -} # Get-NetView() diff --git a/newton-cn/bin/v1.0/Modules/NetDiagnostics/NetDiagnostics.psd1 b/newton-cn/bin/v1.0/Modules/NetDiagnostics/NetDiagnostics.psd1 deleted file mode 100644 index afa3069..0000000 --- a/newton-cn/bin/v1.0/Modules/NetDiagnostics/NetDiagnostics.psd1 +++ /dev/null @@ -1,122 +0,0 @@ -# -# Module manifest for module 'Get-NetView' -# -# Generated by: Microsoft Corporation -# -# Generated on: 12/11/2017 -# - -@{ - -# Script module or binary module file associated with this manifest. -# RootModule = '' - -# Version number of this module. -ModuleVersion = '1.0.0.0' - -# Supported PSEditions -CompatiblePSEditions = @('Desktop') - -# ID used to uniquely identify this module -GUID = 'dfe3b632-99cf-4998-b06c-fdc71b4f2db3' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = '© Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -# Description = '' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# DotNetFrameworkVersion = '' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -# CLRVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = '' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -# FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('Get-NetView.psm1') - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @('Get-NetView') - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @() - -# Variables to export from this module -VariablesToExport = '' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - # Tags = @() - - # A URL to the license for this module. - # LicenseUri = '' - - # A URL to the main website for this project. - # ProjectUri = '' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - # ReleaseNotes = '' - - } # End of PSData hashtable - -} # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.cdxml deleted file mode 100644 index 04d6ad3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.cdxml +++ /dev/null @@ -1,96 +0,0 @@ - - - - 1.1 - NetEventNetworkAdapter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.format.ps1xml deleted file mode 100644 index b0f64f9..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventNetworkAdapter.format.ps1xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - MSFT_NetEventNetworkAdapter_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventNetworkAdapter - - - - - - - Name - - - InterfaceDescription - - - ProviderName - - - CaptureStatus - - - - - - - - MSFT_NetEventNetworkAdapter_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventNetworkAdapter - - - - - 10 - - - 15 - - - 15 - - - 10 - - - - - - - Name - - - InterfaceDescription - - - ProviderName - - - CaptureStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.cdxml deleted file mode 100644 index b3bdcdd..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.cdxml +++ /dev/null @@ -1,199 +0,0 @@ - - - - 1.0 - NetEventPacketCaptureProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.format.ps1xml deleted file mode 100644 index 4974b5c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventPacketCaptureProvider.format.ps1xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - MSFT_NetEventPacketCaptureProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventPacketCaptureProvider - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - CaptureType - - - VmCaptureDirection - - - MultiLayer - - - LinkLayerAddress - - - EtherType - - - IpAddresses - - - IpProtocols - - - TruncationLength - - - - - - - - MSFT_NetEventPacketCaptureProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventPacketCaptureProvider - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - CaptureType - - - VmCaptureDirection - - - MultiLayer - - - LinkLayerAddress - - - EtherType - - - IpAddresses - - - IpProtocols - - - TruncationLength - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.cdxml deleted file mode 100644 index 61f3aba..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.cdxml +++ /dev/null @@ -1,144 +0,0 @@ - - - - 1.0 - NetEventProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.format.ps1xml deleted file mode 100644 index 263b32e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventProvider.format.ps1xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - MSFT_NetEventProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventProvider - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - - - - - - MSFT_NetEventProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventProvider - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.cdxml deleted file mode 100644 index 9de435a..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.cdxml +++ /dev/null @@ -1,163 +0,0 @@ - - - - 1.0 - NetEventSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.format.ps1xml deleted file mode 100644 index 65342cc..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventSession.format.ps1xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - MSFT_NetEventSession_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventSession - - - - - - - Name - - - CaptureMode - - - LocalFilePath - - - MaxFileSize - - - TraceBufferSize - - - MaxNumberOfBuffers - - - SessionStatus - - - - - - - - MSFT_NetEventSession_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventSession - - - - - 10 - - - 15 - - - 15 - - - 17 - - - 14 - - - 8 - - - 10 - - - - - - - Name - - - CaptureMode - - - LocalFilePath - - - MaxFileSize - - - TraceBufferSize - - - MaxNumberOfBuffers - - - SessionStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.cdxml deleted file mode 100644 index e32b38e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.cdxml +++ /dev/null @@ -1,294 +0,0 @@ - - - - 1.0 - NetEventVFPProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.format.ps1xml deleted file mode 100644 index 7e7ee55..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVFPProvider.format.ps1xml +++ /dev/null @@ -1,194 +0,0 @@ - - - - - MSFT_NetEventVFPProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVFPProvider - - - - - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - DestinationMACAddresses - - - SourceMACAddresses - - - VLANIds - - - GREKeys - - - TenantIds - - - SourceIPAddresses - - - DestinationIPAddresses - - - IPProtocols - - - TCPPorts - - - UDPPorts - - - VFPFlowDirection - - - SwitchName - - - PortIds - - - - - - - - MSFT_NetEventVFPProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVFPProvider - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - DestinationMACAddresses - - - SourceMACAddresses - - - VLANIds - - - GREKeys - - - TenantIds - - - SourceIPAddresses - - - DestinationIPAddresses - - - IPProtocols - - - TCPPorts - - - UDPPorts - - - VFPFlowDirection - - - SwitchName - - - PortIds - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.cdxml deleted file mode 100644 index d5d5538..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.cdxml +++ /dev/null @@ -1,85 +0,0 @@ - - - - 1.0 - NetEventVmNetworkAdapter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.format.ps1xml deleted file mode 100644 index 4979229..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmNetworkAdatper.format.ps1xml +++ /dev/null @@ -1,98 +0,0 @@ - - - - - MSFT_NetEventVmNetworkAdapter_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmNetworkAdapter - - - - - - - Name - - - ProviderName - - - MacAddress - - - SwitchName - - - PortName - - - VMName - - - CaptureStatus - - - - - - - - MSFT_NetEventVmNetworkAdapter_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmNetworkAdapter - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - ProviderName - - - MacAddress - - - SwitchName - - - PortName - - - VMName - - - CaptureStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.cdxml deleted file mode 100644 index c28520a..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.cdxml +++ /dev/null @@ -1,85 +0,0 @@ - - - - 1.0 - NetEventVmSwitch - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.format.ps1xml deleted file mode 100644 index d58ca7d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitch.format.ps1xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - MSFT_NetEventVmSwitch_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmSwitch - - - - - - - Name - - - ProviderName - - - CaptureStatus - - - - - - - - MSFT_NetEventVmSwitch_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmSwitch - - - - - 10 - - - 15 - - - 10 - - - - - - - Name - - - ProviderName - - - CaptureStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.cdxml deleted file mode 100644 index 18c4a67..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.cdxml +++ /dev/null @@ -1,133 +0,0 @@ - - - - 1.0 - NetEventVmSwitchProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.format.ps1xml deleted file mode 100644 index 7199a29..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventVmSwitchProvider.format.ps1xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - MSFT_NetEventVmSwitchProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmSwitchProvider - - - - - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - SwitchName - - - PortIds - - - - - - - - MSFT_NetEventVmSwitchProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventVmSwitchProvider - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - SwitchName - - - PortIds - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.cdxml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.cdxml deleted file mode 100644 index 862d051..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.cdxml +++ /dev/null @@ -1,147 +0,0 @@ - - - - 1.0 - NetEventWFPCaptureProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.format.ps1xml deleted file mode 100644 index c059bfd..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/MSFT_NetEventWFPCaptureProvider.format.ps1xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - MSFT_NetEventWFPCaptureProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventWFPCaptureProvider - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - CaptureLayerSet - - - IPAddresses - - - TCPPorts - - - UDPPorts - - - - - - - MSFT_NetEventWFPCaptureProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetEventWFPCaptureProvider - - - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - - - - Name - - - SessionName - - - Level - - - MatchAnyKeyword - - - MatchAllKeyword - - - CaptureLayerSet - - - IPAddresses - - - TCPPorts - - - UDPPorts - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.Types.ps1xml deleted file mode 100644 index b6faac8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.Types.ps1xml +++ /dev/null @@ -1,140 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetEventSession - - - CaptureMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.CaptureModes]($this.PSBase.CimInstanceProperties['CaptureMode'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.CaptureModes]$value) - $this.PSBase.CimInstanceProperties['CaptureMode'].Value = [System.Byte]$value - - - - MaxFileSize - - "" + $this.PSBase.CimInstanceProperties['MaxFileSize'].Value + " MB" - - - - TraceBufferSize - - "" + $this.PSBase.CimInstanceProperties['TraceBufferSize'].Value + " KB" - - - - MaxNumberOfBuffers - - $this.PSBase.CimInstanceProperties['MaxNumberOfBuffers'].Value - - - - SessionStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.ESessionStatus]($this.PSBase.CimInstanceProperties['SessionStatus'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetEventProvider - - - MatchAnyKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAnyKeyword'].Value - - - - MatchAllKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAllKeyword'].Value - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetEventPacketCaptureProvider - - - MatchAnyKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAnyKeyword'].Value - - - - MatchAllKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAllKeyword'].Value - - - - CaptureType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.CaptureType]($this.PSBase.CimInstanceProperties['CaptureType'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.CaptureType]$value) - $this.PSBase.CimInstanceProperties['CaptureType'].Value = [System.Byte]$value - - - - VmCaptureDirection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.VmCaptureDirection]($this.PSBase.CimInstanceProperties['VmCaptureDirection'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.VmCaptureDirection]$value) - $this.PSBase.CimInstanceProperties['VmCaptureDirection'].Value = [System.Byte]$value - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetEventVFPProvider - - - MatchAnyKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAnyKeyword'].Value - - - - MatchAllKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAllKeyword'].Value - - - - VFPFlowDirection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.VFPFlowDirection]($this.PSBase.CimInstanceProperties['VFPFlowDirection'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetEventPacketCapture.VFPFlowDirection]$value) - $this.PSBase.CimInstanceProperties['VFPFlowDirection'].Value = [System.UInt32]$value - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetEventVmSwitchProvider - - - MatchAnyKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAnyKeyword'].Value - - - - MatchAllKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAllKeyword'].Value - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.psd1 b/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.psd1 deleted file mode 100644 index e417155..0000000 --- a/newton-cn/bin/v1.0/Modules/NetEventPacketCapture/NetEventPacketCapture.psd1 +++ /dev/null @@ -1,74 +0,0 @@ -@{ - GUID = "7E984F2F-35DA-48A2-A3C1-40CE59930A7C" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = "1.0.0.0" - PowerShellVersion = '5.1' - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=532774" - - NestedModules = @( - 'MSFT_NetEventSession.cdxml', - 'MSFT_NetEventProvider.cdxml', - 'MSFT_NetEventPacketCaptureProvider.cdxml', - 'MSFT_NetEventNetworkAdapter.cdxml', - 'MSFT_NetEventVmSwitch.cdxml', - 'MSFT_NetEventVmNetworkAdatper.cdxml', - 'MSFT_NetEventWFPCaptureProvider.cdxml', - 'MSFT_NetEventVFPProvider.cdxml', - 'MSFT_NetEventVmSwitchProvider.cdxml') - - FormatsToProcess = @( - 'MSFT_NetEventSession.format.ps1xml', - 'MSFT_NetEventProvider.format.ps1xml', - 'MSFT_NetEventPacketCaptureProvider.format.ps1xml', - 'MSFT_NetEventNetworkAdapter.format.ps1xml', - 'MSFT_NetEventVmSwitch.format.ps1xml', - 'MSFT_NetEventVmNetworkAdatper.format.ps1xml', - 'MSFT_NetEventVFPProvider.format.ps1xml', - 'MSFT_NetEventVmSwitchProvider.format.ps1xml') - - TypesToProcess = @('NetEventPacketCapture.Types.ps1xml') - - FunctionsToExport = @( - 'New-NetEventSession', - 'Remove-NetEventSession', - 'Get-NetEventSession', - 'Set-NetEventSession', - 'Start-NetEventSession', - 'Stop-NetEventSession', - 'Add-NetEventProvider', - 'Remove-NetEventProvider', - 'Get-NetEventProvider', - 'Set-NetEventProvider', - 'Add-NetEventPacketCaptureProvider', - 'Remove-NetEventPacketCaptureProvider', - 'Get-NetEventPacketCaptureProvider', - 'Set-NetEventPacketCaptureProvider', - 'Add-NetEventNetworkAdapter', - 'Remove-NetEventNetworkAdapter', - 'Get-NetEventNetworkAdapter', - 'Add-NetEventVmNetworkAdapter', - 'Remove-NetEventVmNetworkAdapter', - 'Get-NetEventVmNetworkAdapter', - 'Add-NetEventVmSwitch', - 'Remove-NetEventVmSwitch', - 'Get-NetEventVmSwitch', - 'Add-NetEventWFPCaptureProvider', - 'Remove-NetEventWFPCaptureProvider', - 'Get-NetEventWFPCaptureProvider', - 'Set-NetEventWFPCaptureProvider', - 'Add-NetEventVFPProvider', - 'Remove-NetEventVFPProvider', - 'Get-NetEventVFPProvider', - 'Set-NetEventVFPProvider', - 'Add-NetEventVmSwitchProvider', - 'Remove-NetEventVmSwitchProvider', - 'Get-NetEventVmSwitchProvider', - 'Set-NetEventVmSwitchProvider') - - CmdletsToExport = @() - - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.cdxml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.cdxml deleted file mode 100644 index 08588b1..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.cdxml +++ /dev/null @@ -1,161 +0,0 @@ - - - - 1.0 - NetLbfoTeam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.format.ps1xml deleted file mode 100644 index 3079479..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeam.format.ps1xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - MSFT_NetLbfoTeam_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeam - - - - - - - Name - - - Members - - - TeamNics - - - TeamingMode - - - LoadBalancingAlgorithm - - - - ($_.LacpTimer -ne $null) - - LacpTimer - - - Status - - - - - - - - MSFT_NetLbfoTeam_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeam - - - - - 10 - - - 15 - - - 15 - - - 17 - - - 14 - - - 8 - - - - - - - Name - - - Members - - - TeamNics - - - TeamingMode - - - LoadBalancingAlgorithm - - - Status - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.cdxml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.cdxml deleted file mode 100644 index 877aaf3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.cdxml +++ /dev/null @@ -1,120 +0,0 @@ - - - - 1.0 - NetLbfoTeamMember - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.format.ps1xml deleted file mode 100644 index 6829773..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamMember.format.ps1xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - MSFT_NetLbfoTeamMember_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeamMember - - - - - - - Name - - - InterfaceDescription - - - Team - - - AdministrativeMode - - - OperationalStatus - - - - $_.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value -lt 1000000000 - - TransmitLinkSpeed(Mbps) - - - - $_.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value -ge 1000000000 - - TransmitLinkSpeed(Gbps) - - - - $_.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value -lt 1000000000 - - ReceiveLinkSpeed(Mbps) - - - - $_.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value -ge 1000000000 - - ReceiveLinkSpeed(Gbps) - - - FailureReason - - - - - - - - MSFT_NetLbfoTeamMember_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeamMember - - - - - 12 - - - 15 - - - 10 - - - 7 - - - 7 - - - 11 - - - 11 - - - 12 - - - - - - - Name - - - InterfaceDescription - - - Team - - - AdministrativeMode - - - OperationalStatus - - - TransmitLinkSpeed - - - ReceiveLinkSpeed - - - FailureReason - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.cdxml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.cdxml deleted file mode 100644 index 2b4c168..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.cdxml +++ /dev/null @@ -1,101 +0,0 @@ - - - - 1.0 - NetLbfoTeamNic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.format.ps1xml deleted file mode 100644 index 9ab962d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/MSFT_NetLbfoTeamNic.format.ps1xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - MSFT_NetLbfoTeamNic_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeamNic - - - - - - - Name - - - InterfaceDescription - - - Team - - - VlanID - - - Primary - - - Default - - - - $_.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value -lt 1000000000 - - TransmitLinkSpeed(Mbps) - - - - $_.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value -ge 1000000000 - - TransmitLinkSpeed(Gbps) - - - - $_.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value -lt 1000000000 - - ReceiveLinkSpeed(Mbps) - - - - $_.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value -ge 1000000000 - - ReceiveLinkSpeed(Gbps) - - - - - - - - MSFT_NetLbfoTeamNic_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetLbfoTeamNic - - - - - 12 - - - 15 - - - 10 - - - 6 - - - 7 - - - 7 - - - 11 - - - 11 - - - - - - - Name - - - InterfaceDescription - - - Team - - - VlanID - - - Primary - - - Default - - - TransmitLinkSpeed - - - ReceiveLinkSpeed - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.Types.ps1xml deleted file mode 100644 index a000a87..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.Types.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetLbfoTeam - - - Members - - $members = Get-NetLbfoTeamMember -TeamOfTheMember $this - $mnames= @() - foreach($m in @($members)){$mnames += $m.Name} - $mnames - - - - - TeamNics - - $tnics = Get-NetLbfoTeamNic -TeamOfTheTeamNic $this - $tnames= @() - foreach($t in @($tnics)){$tnames += $t.Name} - $tnames - - - - - TeamingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.TeamingModes]($this.PSBase.CimInstanceProperties['TeamingMode'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.TeamingModes]$value) - $this.PSBase.CimInstanceProperties['TeamingMode'].Value = [System.UInt32]$value - - - - - LoadBalancingAlgorithm - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.LBAlgos]($this.PSBase.CimInstanceProperties['LoadBalancingAlgorithm'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.LBAlgos]$value) - $this.PSBase.CimInstanceProperties['LoadBalancingAlgorithm'].Value = [System.UInt32]$value - - - - - LacpTimer - - $lacpTimer = $this.PSBase.CimInstanceProperties['LacpTimer'].Value - if($lacpTimer -ne $null) - { - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.LacpTimers]$lacpTimer - } - else - { - $null - } - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.LacpTimers]$value) - $this.PSBase.CimInstanceProperties['LacpTimer'].Value = [System.UInt32]$value - - - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.TeamStatus]($this.PSBase.CimInstanceProperties['Status'].Value) - - - - - tm - TeamingMode - - - - lba - LoadBalancingAlgorithm - - - - lt - LacpTimer - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetLbfoTeamMember - - - AdministrativeMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.AdminModes]($this.PSBase.CimInstanceProperties['AdministrativeMode'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.AdminModes]$value) - $this.PSBase.CimInstanceProperties['AdministrativeMode'].Value = [System.UInt32]$value - - - - - OperationalStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.OperationalModes]($this.PSBase.CimInstanceProperties['OperationalMode'].Value) - - - - - FailureReason - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetLbfo.FailureReasons]($this.PSBase.CimInstanceProperties['FailureReason'].Value) - - - - - TransmitLinkSpeed - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value - - - - - TransmitLinkSpeed(Mbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value / 1000000 - Format-LinkSpeed $val 1 $false - - - - - TransmitLinkSpeed(Gbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value / 1000000000 - Format-LinkSpeed $val 1 $false - - - - - ReceiveLinkSpeed - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value - - - - - ReceiveLinkSpeed(Mbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value / 1000000 - Format-LinkSpeed $val 1 $false - - - - - ReceiveLinkSpeed(Gbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value / 1000000000 - Format-LinkSpeed $val 1 $false - - - - - am - AdministrativeMode - - - ifAlias - Name - - - InterfaceAlias - Name - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetLbfoTeamNic - - - TransmitLinkSpeed - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value - - - - TransmitLinkSpeed(Mbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value / 1000000 - Format-LinkSpeed $val 1 $false - - - - TransmitLinkSpeed(Gbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['TransmitLinkSpeed'].Value / 1000000000 - Format-LinkSpeed $val 1 $false - - - - ReceiveLinkSpeed - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - Format-LinkSpeed $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value - - - - ReceiveLinkSpeed(Mbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value / 1000000 - Format-LinkSpeed $val 1 $false - - - - ReceiveLinkSpeed(Gbps) - - Import-Module NetAdapter\NetAdapter.Format.Helper.psm1 - $val = $this.PSBase.CimInstanceProperties['ReceiveLinkSpeed'].Value / 1000000000 - Format-LinkSpeed $val 1 $false - - - - - ifAlias - Name - - - - InterfaceAlias - Name - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.psd1 b/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.psd1 deleted file mode 100644 index 239cca8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetLbfo/NetLbfo.psd1 +++ /dev/null @@ -1,30 +0,0 @@ -@{ - GUID = "80cf4c6d-30b7-4b0f-a035-dbb23a65ef1d" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285763" - ModuleVersion = "2.0.0.0" - PowerShellVersion = '5.1' - NestedModules = @('MSFT_NetLbfoTeam.cdxml', 'MSFT_NetLbfoTeamMember.cdxml', 'MSFT_NetLbfoTeamNic.cdxml') - FormatsToProcess = @('MSFT_NetLbfoTeam.format.ps1xml', 'MSFT_NetLbfoTeamMember.format.ps1xml', 'MSFT_NetLbfoTeamNic.format.ps1xml') - TypesToProcess = @('NetLbfo.Types.ps1xml') - FunctionsToExport = @( - 'Add-NetLbfoTeamMember', - 'Add-NetLbfoTeamNic', - 'Get-NetLbfoTeam', - 'Get-NetLbfoTeamMember', - 'Get-NetLbfoTeamNic', - 'New-NetLbfoTeam', - 'Remove-NetLbfoTeam', - 'Remove-NetLbfoTeamMember', - 'Remove-NetLbfoTeamNic', - 'Rename-NetLbfoTeam', - 'Set-NetLbfoTeam', - 'Set-NetLbfoTeamMember', - 'Set-NetLbfoTeamNic' - ) - CmdletsToExport = @() - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Format.ps1xml deleted file mode 100644 index c0d417b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Format.ps1xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - MSFT_NetNat_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNat - - - - - - - Name - - - ExternalIPInterfaceAddressPrefix - - - InternalIPInterfaceAddressPrefix - - - IcmpQueryTimeout - - - TcpEstablishedConnectionTimeout - - - TcpTransientConnectionTimeout - - - TcpFilteringBehavior - - - UdpFilteringBehavior - - - UdpIdleSessionTimeout - - - UdpInboundRefresh - - - Store - - - Active - - - - - - - - - MSFT_NetNatExternalIPAddress_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatExternalAddress - - - - - - - ExternalAddressID - - - NatName - - - IPAddress - - - PortStart - - - PortEnd - - - Active - - - - - - - - - MSFT_NetNatExternalIPAddressMapping_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatStaticMapping - - - - - - - StaticMappingID - - - NatName - - - Protocol - - - RemoteExternalIPAddressPrefix - - - ExternalIPAddress - - - ExternalPort - - - InternalIPAddress - - - InternalPort - - - InternalRoutingDomainId - - - Active - - - - - - - - - MSFT_NetNatSession_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatSession - - - - - - - NatName - - - InternalRoutingDomainId - - - CreationTime - - - Protocol - - - InternalSourceAddress - - - InternalSourcePort - - - InternalDestinationAddress - - - InternalDestinationPort - - - ExternalSourceAddress - - - ExternalSourcePort - - - ExternalDestinationAddress - - - ExternalDestinationPort - - - - - - - - - MSFT_NetNatGlobal_Listview - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatGlobal - - - - - - - InterRoutingDomainHairpinningMode - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Types.ps1xml deleted file mode 100644 index ec71cd8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.Types.ps1xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNat - - - Store - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.PolicyStore]($this.PSBase.CimInstanceProperties['Store'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Store'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.PolicyStore]$newValue - - - - TcpFilteringBehavior - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.FilteringBehaviorType]($this.PSBase.CimInstanceProperties['TcpFilteringBehavior'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['TcpFilteringBehavior'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.FilteringBehaviorType]$newValue - - - - UdpFilteringBehavior - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.FilteringBehaviorType]($this.PSBase.CimInstanceProperties['UdpFilteringBehavior'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['UdpFilteringBehavior'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.FilteringBehaviorType]$newValue - - - - UdpInboundRefresh - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]($this.PSBase.CimInstanceProperties['UdpInboundRefresh'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['UdpInboundRefresh'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]$newValue - - - - Active - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]($this.PSBase.CimInstanceProperties['Active'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Active'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]$newValue - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatStaticMapping - - - Protocol - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatStaticMapping.Protocol]($this.PSBase.CimInstanceProperties['Protocol'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Protocol'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatStaticMapping.Protocol]$newValue - - - - Active - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]($this.PSBase.CimInstanceProperties['Active'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Active'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]$newValue - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatExternalAddress - - - Active - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]($this.PSBase.CimInstanceProperties['Active'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Active'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNat.Boolean]$newValue - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNatGlobal - - - InterRoutingDomainHairpinningMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatGlobal.InterRoutingDomainHairpinningMode]($this.PSBase.CimInstanceProperties['InterRoutingDomainHairpinningMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['InterRoutingDomainHairpinningMode'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatGlobal.InterRoutingDomainHairpinningMode]$newValue - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.cdxml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.cdxml deleted file mode 100644 index 179442b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNat.cdxml +++ /dev/null @@ -1,131 +0,0 @@ - - - - 1.0 - NetNat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatExternalAddress.cdxml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatExternalAddress.cdxml deleted file mode 100644 index 7624655..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatExternalAddress.cdxml +++ /dev/null @@ -1,77 +0,0 @@ - - - - 1.0 - NetNatExternalAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatGlobal.cdxml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatGlobal.cdxml deleted file mode 100644 index 27d6a3f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatGlobal.cdxml +++ /dev/null @@ -1,34 +0,0 @@ - - - - 1.0 - NetNatGlobal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatSession.cdxml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatSession.cdxml deleted file mode 100644 index e9b8dde..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatSession.cdxml +++ /dev/null @@ -1,15 +0,0 @@ - - - - 1.0 - NetNatSession - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatStaticMapping.cdxml b/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatStaticMapping.cdxml deleted file mode 100644 index 72d50a2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/MSFT_NetNatStaticMapping.cdxml +++ /dev/null @@ -1,99 +0,0 @@ - - - - 1.0 - NetNatStaticMapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetNat/NetNat.psd1 b/newton-cn/bin/v1.0/Modules/NetNat/NetNat.psd1 deleted file mode 100644 index e568d15..0000000 --- a/newton-cn/bin/v1.0/Modules/NetNat/NetNat.psd1 +++ /dev/null @@ -1,34 +0,0 @@ -@{ - GUID = 'E5439F56-42AA-4FDF-8705-50C782A89345' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0.0.0' - PowerShellVersion = '5.1' - NestedModules = @( - 'MSFT_NetNat.cdxml', - 'MSFT_NetNatExternalAddress.cdxml', - 'MSFT_NetNatStaticMapping.cdxml', - 'MSFT_NetNatSession.cdxml' - 'MSFT_NetNatGlobal.cdxml' - ) - FormatsToProcess = @('MSFT_NetNat.Format.ps1xml') - TypesToProcess = @('MSFT_NetNat.Types.ps1xml') - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285219" - FunctionsToExport = @( - 'Get-NetNat', - 'Get-NetNatExternalAddress', - 'Get-NetNatStaticMapping', - 'Get-NetNatSession', - 'Get-NetNatGlobal', - 'Set-NetNat', - 'Set-NetNatGlobal', - 'New-NetNat', - 'Add-NetNatExternalAddress', - 'Add-NetNatStaticMapping', - 'Remove-NetNat', - 'Remove-NetNatExternalAddress', - 'Remove-NetNatStaticMapping' - ) - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.Helper.psm1 b/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.Helper.psm1 deleted file mode 100644 index 9879fff..0000000 --- a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.Helper.psm1 +++ /dev/null @@ -1,25 +0,0 @@ -<# - -Copyright (c) 2011 Microsoft Corporation. All Rights Reserved. - -Module Name: - - MSFT_NetQosPolicy.Format.Helper.psm1 - -Description: - - Provides helper routines for formatting the output of NetQosPolicy cmdlets. - -#> - -function Format-NetQosPolicySpeed( - $Value, $Precision = 0 -) -{ - $Postfixes = @("Bits", "KBits", "MBits", "GBits", "TBits") - for ($i = 0; $Value -ge 1000 -and $i -lt $Postfixes.Length - 1; $i++) { - $Value /= 1000 - } - $Value = [Math]::Round([Decimal]$Value, $Precision) - return "$($Value) $($Postfixes[$i])/sec" -} diff --git a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.ps1xml deleted file mode 100644 index 7bc35af..0000000 --- a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Format.ps1xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - MSFT_NetQosPolicy ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetQosPolicySettingData - - - - - - - Name - - - Owner - - - NetworkProfile - - - Precedence - - - - $_.UserMatchCondition -ne $null - - User - - - - ($_.AppPathNameMatchCondition -ne $null) -and $_.AppPathNameMatchCondition[0] - - AppPathName - - - - ($_.TemplateMatchCondition -ne $null) -and ($_.TemplateMatchCondition -ne 0) - - Template - - - - ($_.JobObjectMatchCondition -ne $null) -and ($_.JobObjectMatchCondition -ne 0) - - JobObject - - - - ($_.NetDirectPortMatchCondition -ne $null) -and ($_.NetDirectPortMatchCondition -ne 0) - - NetDirectPort - - - - ($_.IPProtocolMatchCondition -ne $null) -and ($_.IPProtocolMatchCondition -ne 0) - - IPProtocol - - - - ($_.IPPortMatchCondition -ne $null) -and ($_.IPPortMatchCondition -ne 0) - - IPPort - - - - ($_.IPSrcPrefixMatchCondition -ne $null) -and $_.IPSrcPrefixMatchCondition[0] - - IPSrcPrefix - - - - ($_.IPSrcPortStartMatchCondition -ne $null) -and ($_.IPSrcPortStartMatchCondition -ne 0) - - IPSrcPortStart - - - - ($_.IPSrcPortStartMatchCondition -ne $null) -and ($_.IPSrcPortStartMatchCondition -ne 0) - - IPSrcPortEnd - - - - ($_.IPDstPrefixMatchCondition -ne $null) -and $_.IPDstPrefixMatchCondition[0] - - IPDstPrefix - - - - ($_.IPDstPortStartMatchCondition -ne $null) -and ($_.IPDstPortStartMatchCondition -ne 0) - - IPDstPortStart - - - - ($_.IPDstPortStartMatchCondition -ne $null) -and ($_.IPDstPortStartMatchCondition -ne 0) - - IPDstPortEnd - - - - $_.URIMatchCondition -ne $null - - URI - - - - $_.URIMatchCondition -ne $null - - URIRecursive - - - - ($_.PriorityValue8021Action -ne $null) -and ($_.PriorityValue8021Action -ne -1) - - PriorityValue - - - - ($_.DSCPAction -ne $null) -and ($_.DSCPAction -ne -1) - - DSCPValue - - - - ($_.MinBandwidthWeightAction -ne $null) -and ($_.MinBandwidthWeightAction -ne 0) - - MinBandwidthWeight - - - - ($_.ThrottleRateAction -ne $null) -and ($_.ThrottleRateAction -ne 0) - - - - Import-Module NetQos\MSFT_NetQosPolicy.Format.Helper.psm1 - Format-NetQosPolicySpeed $_.ThrottleRateAction 3 - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Types.ps1xml deleted file mode 100644 index 807e0c4..0000000 --- a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.Types.ps1xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetQosPolicySettingData - - - NetworkProfile - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.NetworkProfile]($this.PSBase.CimInstanceProperties['NetworkProfile'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.NetworkProfile]$value) - $this.PSBase.CimInstanceProperties['NetworkProfile'].Value = [System.UInt32]$value - - - - TemplateMatchCondition - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.Template]($this.PSBase.CimInstanceProperties['TemplateMatchCondition'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.Template]$value) - $this.PSBase.CimInstanceProperties['TemplateMatchCondition'].Value = [System.UInt32]$value - - - - UserMatchCondition - - $user = $this.PSBase.CimInstanceProperties['UserMatchCondition'].Value - if ($user -ne $null -and $user[0]) { - [System.Security.Principal.NTAccount]$user - } else { - $null - } - - - param([System.Security.Principal.NTAccount]$value) - $this.PSBase.CimInstanceProperties['UserMatchCondition'].Value = [System.String]$value - - - - AppPathNameMatchCondition - - [System.String]($this.PSBase.CimInstanceProperties['AppPathNameMatchCondition'].Value) - - - param([System.String]$value) - $this.PSBase.CimInstanceProperties['AppPathNameMatchCondition'].Value = $value - - - - JobObjectMatchCondition - - [System.String]($this.PSBase.CimInstanceProperties['JobObjectMatchCondition'].Value) - - - - NetDirectPortMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['NetDirectPortMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['NetDirectPortMatchCondition'].Value = $value - - - - IPProtocolMatchCondition - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.Protocol]($this.PSBase.CimInstanceProperties['IPProtocolMatchCondition'].Value) - - - param([Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetQosPolicy.Protocol]$value) - $this.PSBase.CimInstanceProperties['IPProtocolMatchCondition'].Value = [System.UInt32]$value - - - - IPPortMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['IPPortMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['IPPortMatchCondition'].Value = $value - - - - IPSrcPrefixMatchCondition - - [System.String]($this.PSBase.CimInstanceProperties['IPSrcPrefixMatchCondition'].Value) - - - param([System.String]$value) - $this.PSBase.CimInstanceProperties['IPSrcPrefixMatchCondition'].Value = $value - - - - IPSrcPortStartMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['IPSrcPortStartMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['IPSrcPortStartMatchCondition'].Value = $value - - - - IPSrcPortEndMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['IPSrcPortEndMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['IPSrcPortEndMatchCondition'].Value = $value - - - - IPDstPrefixMatchCondition - - [System.String]($this.PSBase.CimInstanceProperties['IPDstPrefixMatchCondition'].Value) - - - param([System.String]$value) - $this.PSBase.CimInstanceProperties['IPDstPrefixMatchCondition'].Value = $value - - - - IPDstPortStartMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['IPDstPortStartMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['IPDstPortStartMatchCondition'].Value = $value - - - - IPDstPortEndMatchCondition - - [System.UInt16]($this.PSBase.CimInstanceProperties['IPDstPortEndMatchCondition'].Value) - - - param([System.UInt16]$value) - $this.PSBase.CimInstanceProperties['IPDstPortEndMatchCondition'].Value = $value - - - - URIMatchCondition - - $uri = $this.PSBase.CimInstanceProperties['URIMatchCondition'].Value - if ($uri -ne $null -and $uri[0]) { - [System.Uri]$uri - } else { - $null - } - - - param([System.Uri]$value) - $this.PSBase.CimInstanceProperties['URIMatchCondition'].Value = [System.String]$value - - - - URIRecursiveMatchCondition - - [System.Boolean]($this.PSBase.CimInstanceProperties['URIRecursiveMatchCondition'].Value) - - - param([System.Boolean]$value) - $this.PSBase.CimInstanceProperties['URIRecursiveMatchCondition'].Value = $value - - - - PriorityValue8021Action - - [System.SByte]($this.PSBase.CimInstanceProperties['PriorityValue8021Action'].Value) - - - param([System.SByte]$value) - $this.PSBase.CimInstanceProperties['PriorityValue8021Action'].Value = $value - - - - DSCPAction - - [System.SByte]($this.PSBase.CimInstanceProperties['DSCPAction'].Value) - - - param([System.SByte]$value) - $this.PSBase.CimInstanceProperties['DSCPAction'].Value = $value - - - - MinBandwidthWeightAction - - [System.Byte]($this.PSBase.CimInstanceProperties['MinBandwidthWeightAction'].Value) - - - param([System.Byte]$value) - $this.PSBase.CimInstanceProperties['MinBandwidthWeightAction'].Value = $value - - - - ThrottleRateAction - - [System.UInt64]($this.PSBase.CimInstanceProperties['ThrottleRateAction'].Value) - - - param([System.UInt64]$value) - $this.PSBase.CimInstanceProperties['ThrottleRateAction'].Value = $value - - - - User - UserMatchCondition - - - AppPathName - AppPathNameMatchCondition - - - Template - TemplateMatchCondition - - - JobObject - JobObjectMatchCondition - - - NetDirectPort - NetDirectPortMatchCondition - - - IPProtocol - IPProtocolMatchCondition - - - IPPort - IPPortMatchCondition - - - IPSrcPrefix - IPSrcPrefixMatchCondition - - - IPSrcPortStart - IPSrcPortStartMatchCondition - - - IPSrcPortEnd - IPSrcPortEndMatchCondition - - - IPDstPrefix - IPDstPrefixMatchCondition - - - IPDstPortStart - IPDstPortStartMatchCondition - - - IPDstPortEnd - IPDstPortEndMatchCondition - - - URI - URIMatchCondition - - - URIRecursive - URIRecursiveMatchCondition - - - PriorityValue - PriorityValue8021Action - - - DSCPValue - DSCPAction - - - MinBandwidthWeight - MinBandwidthWeightAction - - - ThrottleRate - ThrottleRateAction - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.cdxml b/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.cdxml deleted file mode 100644 index 8df079a..0000000 --- a/newton-cn/bin/v1.0/Modules/NetQos/MSFT_NetQosPolicy.cdxml +++ /dev/null @@ -1,1181 +0,0 @@ - - - - 1.0 - NetQosPolicy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetQos/NetQos.psd1 b/newton-cn/bin/v1.0/Modules/NetQos/NetQos.psd1 deleted file mode 100644 index 3f435ec..0000000 --- a/newton-cn/bin/v1.0/Modules/NetQos/NetQos.psd1 +++ /dev/null @@ -1,18 +0,0 @@ -@{ - GUID = '743692b7-a227-4389-b082-2b47de1d0d2d' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = '2.0.0.0' - PowerShellVersion = '5.1' - NestedModules = @('MSFT_NetQosPolicy.cdxml') - FormatsToProcess = @('MSFT_NetQosPolicy.format.ps1xml') - TypesToProcess = @('MSFT_NetQosPolicy.types.ps1xml') - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285555" - FunctionsToExport = @( - 'Get-NetQosPolicy', - 'Set-NetQosPolicy', - 'Remove-NetQosPolicy', - 'New-NetQosPolicy') - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/Microsoft.Windows.Firewall.Commands.dll b/newton-cn/bin/v1.0/Modules/NetSecurity/Microsoft.Windows.Firewall.Commands.dll deleted file mode 100644 index 9e5ac8415338ad6435b773efdba2a7474c6e1480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31232 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 - - - 1.0.0.0 - NetFirewallAddressFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallApplicationFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallApplicationFilter.cmdletDefinition.cdxml deleted file mode 100644 index cd1cbf2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallApplicationFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,74 +0,0 @@ - - - - 1.0.0.0 - NetFirewallApplicationFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallDynamicKeywordAddress.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallDynamicKeywordAddress.cmdletDefinition.cdxml deleted file mode 100644 index 9e06cdf..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallDynamicKeywordAddress.cmdletDefinition.cdxml +++ /dev/null @@ -1,102 +0,0 @@ - - - - 1.0.0.0 - NetFirewallDynamicKeywordAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceFilter.cmdletDefinition.cdxml deleted file mode 100644 index 8872632..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,62 +0,0 @@ - - - - 1.0.0.0 - NetFirewallInterfaceFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceTypeFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceTypeFilter.cmdletDefinition.cdxml deleted file mode 100644 index f0e3996..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallInterfaceTypeFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,78 +0,0 @@ - - - - 1.0.0.0 - NetFirewallInterfaceTypeFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallPortFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallPortFilter.cmdletDefinition.cdxml deleted file mode 100644 index c0c2e4f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallPortFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,102 +0,0 @@ - - - - 1.0.0.0 - NetFirewallPortFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallProfile.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallProfile.cmdletDefinition.cdxml deleted file mode 100644 index 443ea4d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallProfile.cmdletDefinition.cdxml +++ /dev/null @@ -1,164 +0,0 @@ - - - - 1.0.0.0 - NetFirewallProfile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallRule.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallRule.cmdletDefinition.cdxml deleted file mode 100644 index 1ce77f6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallRule.cmdletDefinition.cdxml +++ /dev/null @@ -1,646 +0,0 @@ - - - - 1.0.0.0 - NetFirewallRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSecurityFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSecurityFilter.cmdletDefinition.cdxml deleted file mode 100644 index 5beb9e0..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSecurityFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,126 +0,0 @@ - - - - 1.0.0.0 - NetFirewallSecurityFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallServiceFilter.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallServiceFilter.cmdletDefinition.cdxml deleted file mode 100644 index a556616..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallServiceFilter.cmdletDefinition.cdxml +++ /dev/null @@ -1,64 +0,0 @@ - - - - 1.0.0.0 - NetFirewallServiceFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSetting.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSetting.cmdletDefinition.cdxml deleted file mode 100644 index 8737882..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetFirewallSetting.cmdletDefinition.cdxml +++ /dev/null @@ -1,141 +0,0 @@ - - - - 1.0.0.0 - NetFirewallSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetGPO.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetGPO.cmdletDefinition.cdxml deleted file mode 100644 index 98bfc5e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetGPO.cmdletDefinition.cdxml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 1.0.0.0 - NetGPO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecDospSetting.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecDospSetting.cmdletDefinition.cdxml deleted file mode 100644 index 5d0a930..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecDospSetting.cmdletDefinition.cdxml +++ /dev/null @@ -1,246 +0,0 @@ - - - - 1.0.0.0 - NetIPsecDospSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecIdentity.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecIdentity.cmdletDefinition.cdxml deleted file mode 100644 index fedcc7f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecIdentity.cmdletDefinition.cdxml +++ /dev/null @@ -1,31 +0,0 @@ - - - - 1.0.0.0 - NetIPsecIdentity - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeCryptoSet.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeCryptoSet.cmdletDefinition.cdxml deleted file mode 100644 index 55ee4db..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeCryptoSet.cmdletDefinition.cdxml +++ /dev/null @@ -1,295 +0,0 @@ - - - - 1.0.0.0 - NetIPsecMainModeCryptoSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeRule.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeRule.cmdletDefinition.cdxml deleted file mode 100644 index 1512511..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeRule.cmdletDefinition.cdxml +++ /dev/null @@ -1,366 +0,0 @@ - - - - 1.0.0.0 - NetIPsecMainModeRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeSA.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeSA.cmdletDefinition.cdxml deleted file mode 100644 index 65f9ffb..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecMainModeSA.cmdletDefinition.cdxml +++ /dev/null @@ -1,44 +0,0 @@ - - - - 1.0.0.0 - NetIPsecMainModeSA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase1AuthSet.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase1AuthSet.cmdletDefinition.cdxml deleted file mode 100644 index 6c89259..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase1AuthSet.cmdletDefinition.cdxml +++ /dev/null @@ -1,259 +0,0 @@ - - - - 1.0.0.0 - NetIPsecPhase1AuthSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase2AuthSet.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase2AuthSet.cmdletDefinition.cdxml deleted file mode 100644 index 4be6d87..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPhase2AuthSet.cmdletDefinition.cdxml +++ /dev/null @@ -1,253 +0,0 @@ - - - - 1.0.0.0 - NetIPsecPhase2AuthSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPolicyChange.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPolicyChange.cmdletDefinition.cdxml deleted file mode 100644 index 739aa1f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecPolicyChange.cmdletDefinition.cdxml +++ /dev/null @@ -1,17 +0,0 @@ - - - - 1.0.0.0 - NetIPsecPolicyChange - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeCryptoSet.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeCryptoSet.cmdletDefinition.cdxml deleted file mode 100644 index 8514f0b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeCryptoSet.cmdletDefinition.cdxml +++ /dev/null @@ -1,267 +0,0 @@ - - - - 1.0.0.0 - NetIPsecQuickModeCryptoSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeSA.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeSA.cmdletDefinition.cdxml deleted file mode 100644 index 475bae3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecQuickModeSA.cmdletDefinition.cdxml +++ /dev/null @@ -1,76 +0,0 @@ - - - - 1.0.0.0 - NetIPsecQuickModeSA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecRule.cmdletDefinition.cdxml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecRule.cmdletDefinition.cdxml deleted file mode 100644 index df19f83..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetIPsecRule.cmdletDefinition.cdxml +++ /dev/null @@ -1,825 +0,0 @@ - - - - 1.0.0.0 - NetIPsecRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.formats.ps1xml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.formats.ps1xml deleted file mode 100644 index f6481a2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.formats.ps1xml +++ /dev/null @@ -1,3316 +0,0 @@ - - - - - NetFirewallRule_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallRule - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - Enabled - - - Profile - - - Platform - - - Direction - - - Action - - - EdgeTraversalPolicy - - - LooseSourceMapping - - - LocalOnlyMapping - - - Owner - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - RemoteDynamicKeywordAddresses - - - - - - - - NetFirewallRule_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallRule - - - - - - - - - - - - - - - 5 - - - - 10 - - - - - - - - - - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - Enabled - - - Profile - - - Direction - - - Action - - - RemoteDynamicKeywordAddresses - - - - - - - - NetIPsecRule_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetConSecRule - - - - - - - IPsecRuleName - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - Enabled - - - Profile - - - Platform - - - Mode - - - InboundSecurity - - - OutboundSecurity - - - QuickModeCryptoSet - - - Phase1AuthSet - - - Phase2AuthSet - - - KeyModule - - - AllowWatchKey - - - AllowSetKey - - - LocalTunnelEndpoint - - - RemoteTunnelEndpoint - - - RemoteTunnelHostname - - - ForwardPathLifetime - - - EncryptedTunnelBypass - - - RequireAuthorization - - - User - - - Machine - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecRule_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetConSecRule - - - - - - - - - - - - - - - 5 - - - - 10 - - - - - - - - - - - - - - - - IPsecRuleName - - - DisplayName - - - DisplayGroup - - - Enabled - - - Profile - - - Mode - - - InboundSecurity - - - OutboundSecurity - - - - - - - - NetIPsecMainModeRule_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetMainModeRule - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeRule - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - Enabled - - - Profile - - - Platform - - - MainModeCryptoSet - - - Phase1AuthSet - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecMainModeRule_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetMainModeRule - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeRule - - - - - - - - - - - - - - - 5 - - - - 10 - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - Enabled - - - Profile - - - - - - - - NetFirewallAddressFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetAddressFilter - - - - - - - LocalAddress - - - RemoteAddress - - - - - - - - NetFirewallAddressFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetAddressFilter - - - - - - - - - - - - - - - LocalAddress - - - RemoteAddress - - - - - - - - - NetFirewallApplicationFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetApplicationFilter - - - - - - - Program - - - Package - - - - - - - - NetFirewallApplicationFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetApplicationFilter - - - - - - - - - - - - - - - Program - - - Package - - - - - - - - - NetFirewallInterfaceFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetInterfaceFilter - - - - - - - InterfaceAlias - - - - - - - - NetFirewallInterfaceFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetInterfaceFilter - - - - - - - - - - - - InterfaceAlias - - - - - - - - - NetFirewallInterfaceTypeFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetInterfaceTypeFilter - - - - - - - InterfaceType - - - - - - - - NetFirewallInterfaceTypeFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetInterfaceTypeFilter - - - - - - - - - - - - InterfaceType - - - - - - - - - NetFirewallSecurityFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetNetworkLayerSecurityFilter - - - - - - - Authentication - - - Encryption - - - OverrideBlockRules - - - LocalUser - - - RemoteUser - - - RemoteMachine - - - - - - - - NetFirewallSecurityFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetNetworkLayerSecurityFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - Authentication - - - Encryption - - - OverrideBlockRules - - - LocalUser - - - RemoteUser - - - RemoteMachine - - - - - - - - - NetFirewallPortFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetProtocolPortFilter - - - - - - - Protocol - - - LocalPort - - - RemotePort - - - IcmpType - - - DynamicTarget - - - - - - - - NetFirewallPortFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetProtocolPortFilter - - - - - - - - - - - - - - - - - - - - - - - - Protocol - - - LocalPort - - - RemotePort - - - IcmpType - - - DynamicTarget - - - - - - - - - NetFirewallServiceFilter_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetServiceFilter - - - - - - - Service - - - - - - - - NetFirewallServiceFilter_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetServiceFilter - - - - - - - - - - - - Service - - - - - - - - - NetIPsecPhase1AuthSet_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEP1AuthSet - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationProposals($_.Proposals) - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecPhase1AuthSet_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEP1AuthSet - - - - - - - - - - - - - - - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationSummary($_.Proposals) - - - - - - - - - NetIPsecPhase2AuthSet_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEP2AuthSet - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationProposals($_.Proposals) - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecPhase2AuthSet_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEP2AuthSet - - - - - - - - - - - - - - - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationSummary($_.Proposals) - - - - - - - - - NetIPsecAuthProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEBasicAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEBasicAuthProposal - - - - - - - AuthenticationMethod - - - - - - - - NetIPsecAuthProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEBasicAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEBasicAuthProposal - - - - - - - - - - - - AuthenticationMethod - - - - - - - - - NetIPsecKerbAuthProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEKerbAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEKerbAuthProposal - - - - - - - AuthenticationMethod - - - Proxy - - - - - - - - NetIPsecKerbAuthProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEKerbAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEKerbAuthProposal - - - - - - - - - - - - - - - AuthenticationMethod - - - Proxy - - - - - - - - - NetIPsecPskAuthProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEPSKAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEPSKAuthProposal - - - - - - - AuthenticationMethod - - - PreSharedKey - - - - - - - - NetIPsecPskAuthProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEPSKAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEPSKAuthProposal - - - - - - - - - - - - - - - AuthenticationMethod - - - PreSharedKey - - - - - - - - - NetIPsecCertAuthProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKECertAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKECertAuthProposal - - - - - - - AuthenticationMethod - - - Authority - - - AuthorityType - - - ExcludeCAName - - - AccountMapping - - - Signing - - - SubjectName - - - SubjectNameType - - - ExtendedKeyUsage - - - Thumbprint - - - FollowRenewal - - - SelectionCriteria - - - ValidationCriteria - - - - - - - - NetIPsecCertAuthProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKECertAuthProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKECertAuthProposal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthenticationMethod - - - Authority - - - AuthorityType - - - ExcludeCAName - - - AccountMapping - - - Signing - - - SubjectName - - - SubjectNameType - - - ExtendedKeyUsage - - - Thumbprint - - - FollowRenewal - - - SelectionCriteria - - - ValidationCriteria - - - - - - - - - NetIPsecMainModeCryptoSet_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEMMCryptoSet - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatMainModeCryptoProposals($_.Proposals) - - - MaxMinutes - - - MaxSessions - - - ForceDiffieHellman - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecMainModeCryptoSet_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEMMCryptoSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatMainModeCryptoProposals($_.Proposals) - - - MaxMinutes - - - MaxSessions - - - ForceDiffieHellman - - - - - - - - - NetIPsecQuickModeCryptoSet_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEQMCryptoSet - - - - - - - Name - - - DisplayName - - - Description - - - DisplayGroup - - - Group - - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatQuickModeCryptoProposals($_.Proposals) - - - PfsGroup - - - PrimaryStatus - - - Status - - - EnforcementStatus - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetIPsecQuickModeCryptoSet_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEQMCryptoSet - - - - - - - - - - - - - - - - - - - - - - - - Name - - - DisplayName - - - DisplayGroup - - - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatQuickModeCryptoProposals($_.Proposals) - - - PfsGroup - - - - - - - - - NetIPsecMainModeCryptoProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEMMCryptoProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMCryptoProposal - - - - - - - Encryption - - - Hash - - - KeyExchange - - - - - - - - NetIPsecMainModeCryptoProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEMMCryptoProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMCryptoProposal - - - - - - - - - - - - - - - - - - Encryption - - - Hash - - - KeyExchange - - - - - - - - - NetIPsecQuickModeCryptoProposal_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEQMCryptoProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoProposal - - - - - - - Encapsulation - - - AhHash - - - EspHash - - - Encryption - - - MaxKilobytes - - - MaxMinutes - - - - - - - - NetIPsecQuickModeCryptoProposal_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIKEQMCryptoProposal - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoProposal - - - - - - - - - - - - - - - - - - - - - - - - - - - Encapsulation - - - AhHash - - - EspHash - - - Encryption - - - MaxKilobytes - - - MaxMinutes - - - - - - - - - NetFirewallProfile_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallProfile - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallProfile - - - - - - - Name - - - Enabled - - - DefaultInboundAction - - - DefaultOutboundAction - - - AllowInboundRules - - - AllowLocalFirewallRules - - - AllowLocalIPsecRules - - - AllowUserApps - - - AllowUserPorts - - - AllowUnicastResponseToMulticast - - - NotifyOnListen - - - EnableStealthModeForIPsec - - - LogFileName - - - LogMaxSizeKilobytes - - - LogAllowed - - - LogBlocked - - - LogIgnored - - - DisabledInterfaceAliases - - - - - - - - NetFirewallProfile_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallProfile - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallProfile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Enabled - - - DefaultInboundAction - - - DefaultOutboundAction - - - AllowInboundRules - - - AllowLocalFirewallRules - - - AllowLocalIPsecRules - - - AllowUserApps - - - AllowUserPorts - - - AllowUnicastResponseToMulticast - - - NotifyOnListen - - - EnableStealthModeForIPsec - - - LogFileName - - - LogMaxSizeKilobytes - - - LogAllowed - - - LogBlocked - - - LogIgnored - - - DisabledInterfaceAliases - - - - - - - - - NetIPsecPolicyChange_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetSecDeltaCollection - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecDeltaCollection - - - - - - - Action - - - EndpointType - - - PolicyStore - - - IPsecRuleDisplayName - - - IPv4Addresses - - - IPv6Addresses - - - NameResolutionFailures - - - - - - - - NetIPsecPolicyChange_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetSecDeltaCollection - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecDeltaCollection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Action - - - EndpointType - - - PolicyStore - - - IPsecRuleDisplayName - - - IPv4Addresses - - - IPv6Addresses - - - NameResolutionFailures - - - - - - - - - NetIPsecDospSetting_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIPsecDoSPSetting - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecDoSPSetting - - - - - - - Name - - - StateIdleTimeoutSeconds - - - PerIPRateLimitQueueIdleTimeoutSeconds - - - IpV6IPsecUnauthDscp - - - IpV6IPsecUnauthRateLimitBytesPerSec - - - IpV6IPsecUnauthPerIPRateLimitBytesPerSec - - - IpV6IPsecAuthDscp - - - IpV6IPsecAuthRateLimitBytesPerSec - - - IcmpV6Dscp - - - IcmpV6RateLimitBytesPerSec - - - IpV6FilterExemptDscp - - - IpV6FilterExemptRateLimitBytesPerSec - - - DefBlockExemptDscp - - - DefBlockExemptRateLimitBytesPerSec - - - MaxStateEntries - - - MaxPerIPRateLimitQueues - - - EnabledKeyingModules - - - FilteringFlags - - - PublicInterfaceAliases - - - PrivateInterfaceAliases - - - PublicV6Address - - - PrivateV6Address - - - EffectiveAddressFamily - - - - - - - - NetIPsecDospSetting_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIPsecDoSPSetting - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecDoSPSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - StateIdleTimeoutSeconds - - - PerIPRateLimitQueueIdleTimeoutSeconds - - - IpV6IPsecUnauthDscp - - - IpV6IPsecUnauthRateLimitBytesPerSec - - - IpV6IPsecUnauthPerIPRateLimitBytesPerSec - - - IpV6IPsecAuthDscp - - - IpV6IPsecAuthRateLimitBytesPerSec - - - IcmpV6Dscp - - - IcmpV6RateLimitBytesPerSec - - - IpV6FilterExemptDscp - - - IpV6FilterExemptRateLimitBytesPerSec - - - DefBlockExemptDscp - - - DefBlockExemptRateLimitBytesPerSec - - - MaxStateEntries - - - MaxPerIPRateLimitQueues - - - EnabledKeyingModules - - - FilteringFlags - - - PublicInterfaceAliases - - - PrivateInterfaceAliases - - - PublicV6Address - - - PrivateV6Address - - - EffectiveAddressFamily - - - - - - - - - NetIPsecIdentity_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIPsecIdentity - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecIdentity - - - - - - - ImpersonationType - - - AuthenticationMethod - - - Flags - - - - - - - - NetIPsecIdentity_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetIPsecIdentity - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecIdentity - - - - - - - - - - - - - - - - - - ImpersonationType - - - AuthenticationMethod - - - Flags - - - - - - - - - NetIPsecMainModeSA_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetMainModeSA - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeSA - - - - - - - Name - - - LocalEndpoint - - - RemoteEndpoint - - - - $_.LocalFirstId.Identity - - - - $_.LocalFirstId.ImpersonationType - - - - $_.LocalFirstId.AuthenticationMethod - - - - $_.LocalFirstId.Flags - - - - $_.RemoteFirstId.Identity - - - - $_.RemoteFirstId.ImpersonationType - - - - $_.RemoteFirstId.AuthenticationMethod - - - - $_.RemoteFirstId.Flags - - - - $_.LocalSecondId.Identity - - - - $_.LocalSecondId.ImpersonationType - - - - $_.LocalSecondId.AuthenticationMethod - - - - $_.LocalSecondId.Flags - - - - $_.RemoteSecondId.Identity - - - - $_.RemoteSecondId.ImpersonationType - - - - $_.RemoteSecondId.AuthenticationMethod - - - - $_.RemoteSecondId.Flags - - - CipherAlgorithm - - - HashAlgorithm - - - GroupId - - - KeyModule - - - MaxQMSAs - - - LifetimeSeconds - - - LocalUdpEncapsulationPort - - - RemoteUdpEncapsulationPort - - - ExtendedFilterId - - - - - - - - NetIPsecMainModeSA_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetMainModeSA - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeSA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - LocalEndpoint - - - RemoteEndpoint - - - $_.LocalFirstId.Identity - - - $_.LocalFirstId.ImpersonationType - - - $_.LocalFirstId.AuthenticationMethod - - - $_.LocalFirstId.Flags - - - $_.RemoteFirstId.Identity - - - $_.RemoteFirstId.ImpersonationType - - - $_.RemoteFirstId.AuthenticationMethod - - - $_.RemoteFirstId.Flags - - - $_.LocalSecondId.Identity - - - $_.LocalSecondId.ImpersonationType - - - $_.LocalSecondId.AuthenticationMethod - - - $_.LocalSecondId.Flags - - - $_.RemoteSecondId.Identity - - - $_.RemoteSecondId.ImpersonationType - - - $_.RemoteSecondId.AuthenticationMethod - - - $_.RemoteSecondId.Flags - - - CipherAlgorithm - - - HashAlgorithm - - - GroupId - - - KeyModule - - - MaxQMSAs - - - LifetimeSeconds - - - LocalUdpEncapsulationPort - - - RemoteUdpEncapsulationPort - - - ExtendedFilterId - - - - - - - - - NetIPsecQuickModeSA_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetQuickModeSA - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetQuickModeSA - - - - - - - Name - - - LocalEndpoint - - - RemoteEndpoint - - - TransportLayerFilterName - - - EncapsulationMode - - - Direction - - - LocalPort - - - RemotePort - - - IpProtocol - - - InterfaceAlias - - - RealIfProfileId - - - LocalUdpEncapsulationPort - - - RemoteUdpEncapsulationPort - - - SPI - - - FirstTransformType - - - FirstIntegrityAlgorithm - - - FirstCipherAlgorithm - - - SecondSpi - - - SecondTransformType - - - SecondIntegrityAlgorithm - - - SecondCipherAlgorithm - - - Flags - - - MmSaId - - - PfsGroupId - - - PeerV4PrivateAddress - - - QuickModeFilterid - - - LifetimeSeconds - - - LifetimeKilobytes - - - LifetimePackets - - - IdleDurationSeconds - - - NdAllowClearTimeoutSeconds - - - NapContext - - - QmSaId - - - VirtualIfTunnelId - - - TrafficSelectorId - - - MmTargetName - - - EmTargetName - - - ExplicitCredentials - - - - - - - - NetIPsecQuickModeSA_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetQuickModeSA - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetQuickModeSA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - LocalEndpoint - - - RemoteEndpoint - - - TransportLayerFilterName - - - EncapsulationMode - - - Direction - - - LocalPort - - - RemotePort - - - IpProtocol - - - InterfaceAlias - - - RealIfProfileId - - - LocalUdpEncapsulationPort - - - RemoteUdpEncapsulationPort - - - SPI - - - FirstTransformType - - - FirstIntegrityAlgorithm - - - FirstCipherAlgorithm - - - SecondSpi - - - SecondTransformType - - - SecondIntegrityAlgorithm - - - SecondCipherAlgorithm - - - Flags - - - MmSaId - - - PfsGroupId - - - PeerV4PrivateAddress - - - QuickModeFilterid - - - LifetimeSeconds - - - LifetimeKilobytes - - - LifetimePackets - - - IdleDurationSeconds - - - NdAllowClearTimeoutSeconds - - - NapContext - - - QmSaId - - - VirtualIfTunnelId - - - TrafficSelectorId - - - MmTargetName - - - EmTargetName - - - ExplicitCredentials - - - - - - - - - NetFirewallSetting_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetSecuritySettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecuritySettingData - - - - - - - Name - - - Exemptions - - - EnableStatefulFtp - - - EnableStatefulPptp - - - ActiveProfile - - - RemoteMachineTransportAuthorizationList - - - RemoteMachineTunnelAuthorizationList - - - RemoteUserTransportAuthorizationList - - - RemoteUserTunnelAuthorizationList - - - RequireFullAuthSupport - - - CertValidationLevel - - - AllowIPsecThroughNAT - - - MaxSAIdleTimeSeconds - - - KeyEncoding - - - EnablePacketQueuing - - - - - - - - NetFirewallSetting_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetSecuritySettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecuritySettingData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Exemptions - - - EnableStatefulFtp - - - EnableStatefulPptp - - - ActiveProfile - - - RemoteMachineTransportAuthorizationList - - - RemoteMachineTunnelAuthorizationList - - - RemoteUserTransportAuthorizationList - - - RemoteUserTunnelAuthorizationList - - - RequireFullAuthSupport - - - CertValidationLevel - - - AllowIPsecThroughNAT - - - MaxSAIdleTimeSeconds - - - KeyEncoding - - - EnablePacketQueuing - - - - - - - - - NetFirewallDynamicKeywordAddress_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallDynamicKeywordAddress - - - - - - - Id - - - Keyword - - - Addresses - - - AutoResolve - - - PolicyStoreSource - - - PolicyStoreSourceType - - - - - - - - NetFirewallDynamicKeywordAddress_Tableview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/MSFT_NetFirewallDynamicKeywordAddress - - - - - - - - - - - - - - - - - - - - - Id - - - Keyword - - - Addresses - - - AutoResolve - - - - - - - - - MSFT_NetRuleDeep_Listview - - Microsoft.Management.Infrastructure.CimInstance#root/standardcimv2/NetSecurityDeepEnumElement - - - - - - - - - if ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallRule") -{( - (New-Object -TypeName System.String '-',((Get-Host).ui.rawui.windowsize.width - 1)) + "`r`n" + - "`r`n`r`n`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Name, "Name", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayName, "DisplayName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Description, "Description", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayGroup, "DisplayGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Group, "Group", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Enabled, "Enabled", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Profile, "Profile", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.Platform), "Platform", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Direction, "Direction", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Action, "Action", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.EdgeTraversalPolicy, "EdgeTraversalPolicy", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.LooseSourceMapping, "LooseSourceMapping", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.LocalOnlyMapping, "LocalOnlyMapping", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Owner, "Owner", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PrimaryStatus, "PrimaryStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Status, "Status", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.EnforcementStatus), "EnforcementStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSource, "PolicyStoreSource", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSourceType, "PolicyStoreSourceType", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.RemoteDynamicKeywordAddresses), "RemoteDynamicKeywordAddresses", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAddressFilter") -{( - "`r`n`$_ | Get-NetFirewallAddressFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.LocalAddress), " LocalAddress", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.RemoteAddress), " RemoteAddress", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetApplicationFilter") -{( - "`r`n`$_ | Get-NetFirewallApplicationFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Program, " Program", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Package, " Package", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetServiceFilter") -{( - "`r`n`$_ | Get-NetFirewallServiceFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Service, " Service", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetInterfaceFilter") -{( - "`r`n`$_ | Get-NetFirewallInterfaceFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.InterfaceAlias), " InterfaceAlias", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetInterfaceTypeFilter") -{( - "`r`n`$_ | Get-NetFirewallInterfaceTypeFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.InterfaceType, " InterfaceType", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetProtocolPortFilter") -{( - "`r`n`$_ | Get-NetFirewallPortFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Protocol, " Protocol", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.LocalPort), " LocalPort", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.RemotePort), " RemotePort", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.IcmpType), " IcmpType", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DynamicTarget, " DynamicTarget", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetNetworkLayerSecurityFilter") -{( - "`r`n`$_ | Get-NetFirewallSecurityFilter`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Authentication, " Authentication", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Encryption, " Encryption", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.OverrideBlockRules, " OverrideBlockRules", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.LocalUser, " LocalUser", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.RemoteUser, " RemoteUser", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.RemoteMachine, " RemoteMachine", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetConSecRule") -{( - (New-Object -TypeName System.String '-',((Get-Host).ui.rawui.windowsize.width - 1)) + "`r`n" + - "`r`n`r`n`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.IPsecRuleName, "IPsecRuleName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayName, "DisplayName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Description, "Description", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayGroup, "DisplayGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Group, "Group", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Enabled, "Enabled", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Profile, "Profile", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.Platform), "Platform", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Mode, "Mode", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.InboundSecurity, "InboundSecurity", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.OutboundSecurity, "OutboundSecurity", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.QuickModeCryptoSet, "QuickModeCryptoSet", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Phase1AuthSet, "Phase1AuthSet", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Phase2AuthSet, "Phase2AuthSet", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.KeyModule, "KeyModule", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.AllowWatchKey, "AllowWatchKey", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.AllowSetKey, "AllowSetKey", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.LocalTunnelEndpoint), "LocalTunnelEndpoint", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.RemoteTunnelEndpoint), "RemoteTunnelEndpoint", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.RemoteTunnelHostname, "RemoteTunnelHostname", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.ForwardPathLifetime, "ForwardPathLifetime", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.EncryptedTunnelBypass, "EncryptedTunnelBypass", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.RequireAuthorization, "RequireAuthorization", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.User, "User", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Machine, "Machine", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PrimaryStatus, "PrimaryStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Status, "Status", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.EnforcementStatus), "EnforcementStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSource, "PolicyStoreSource", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSourceType, "PolicyStoreSourceType", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoSet") -{( - "`r`n`$_ | Get-NetQuickModeCryptoSet`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Name, " Name", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayName, " DisplayName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Description, " Description", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayGroup, " DisplayGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Group, " Group", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock([Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatQuickModeCryptoProposals($_.Proposals), " Proposal", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PerfectForwardSecrecyGroup, " PfsGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PrimaryStatus, " PrimaryStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Status, " Status", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.EnforcementStatus), " EnforcementStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSource, " PolicyStoreSource", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSourceType, " PolicyStoreSourceType", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEP1AuthSet") -{( - "`r`n`$_ | Get-NetIPsecPhase1AuthSet`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Name, " Name", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayName, " DisplayName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Description, " Description", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayGroup, " DisplayGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Group, " Group", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock([Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationProposals($_.Proposals), " Proposal", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PrimaryStatus, " PrimaryStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Status, " Status", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.EnforcementStatus), " EnforcementStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSource, " PolicyStoreSource", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSourceType, " PolicyStoreSourceType", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} -elseif ($_.PSTypeNames -contains "Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEP2AuthSet") -{( - "`r`n`$_ | Get-NetIPsecPhase2AuthSet`r`n" + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Name, " Name", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayName, " DisplayName", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Description, " Description", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.DisplayGroup, " DisplayGroup", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Group, " Group", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock([Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatAuthenticationProposals($_.Proposals), " Proposal", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PrimaryStatus, " PrimaryStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.Status, " Status", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock(($_.EnforcementStatus), " EnforcementStatus", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSource, " PolicyStoreSource", 29, (Get-Host).ui.rawui.windowsize.width) + - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatTextBlock($_.PolicyStoreSourceType, " PolicyStoreSourceType", 29, (Get-Host).ui.rawui.windowsize.width) -).TrimEnd()} - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.psd1 b/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.psd1 deleted file mode 100644 index 501ad22..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.psd1 +++ /dev/null @@ -1,136 +0,0 @@ -@{ - ModuleVersion = '2.0.0.0' - FormatsToProcess = 'NetSecurity.formats.ps1xml' - TypesToProcess = 'NetSecurity.types.ps1xml' - NestedModules = @( - "Microsoft.Windows.Firewall.Commands.dll", - "NetFirewallRule.cmdletDefinition.cdxml", - "NetIPsecRule.cmdletDefinition.cdxml", - "NetIPsecMainModeRule.cmdletDefinition.cdxml", - "NetFirewallAddressFilter.cmdletDefinition.cdxml", - "NetFirewallApplicationFilter.cmdletDefinition.cdxml", - "NetFirewallInterfaceFilter.cmdletDefinition.cdxml", - "NetFirewallInterfaceTypeFilter.cmdletDefinition.cdxml", - "NetFirewallSecurityFilter.cmdletDefinition.cdxml", - "NetFirewallPortFilter.cmdletDefinition.cdxml", - "NetFirewallServiceFilter.cmdletDefinition.cdxml", - "NetIPsecPhase1AuthSet.cmdletDefinition.cdxml", - "NetIPsecPhase2AuthSet.cmdletDefinition.cdxml", - "NetIPsecMainModeCryptoSet.cmdletDefinition.cdxml", - "NetIPsecQuickModeCryptoSet.cmdletDefinition.cdxml", - "NetFirewallProfile.cmdletDefinition.cdxml", - "NetIPsecPolicyChange.cmdletDefinition.cdxml", - "NetIPsecDospSetting.cmdletDefinition.cdxml", - "NetIPsecIdentity.cmdletDefinition.cdxml", - "NetIPsecMainModeSA.cmdletDefinition.cdxml", - "NetIPsecQuickModeSA.cmdletDefinition.cdxml", - "NetFirewallSetting.cmdletDefinition.cdxml", - "NetFirewallDynamicKeywordAddress.cmdletDefinition.cdxml", - "NetGPO.cmdletDefinition.cdxml" - ) - GUID = '{4B26FF51-7AEE-4731-9CF7-508B82532CBF}' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - PowerShellVersion = '3.0' - ClrVersion = '4.0' - Copyright = '(c) Microsoft Corporation. All rights reserved.' - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285764" - CompatiblePSEditions = 'Desktop', 'Core' - - FunctionsToExport = @( - "Copy-NetFirewallRule", - "Copy-NetIPsecMainModeCryptoSet", - "Copy-NetIPsecMainModeRule", - "Copy-NetIPsecPhase1AuthSet", - "Copy-NetIPsecPhase2AuthSet", - "Copy-NetIPsecQuickModeCryptoSet", - "Copy-NetIPsecRule", - "Disable-NetFirewallRule", - "Disable-NetIPsecMainModeRule", - "Disable-NetIPsecRule", - "Enable-NetFirewallRule", - "Enable-NetIPsecMainModeRule", - "Enable-NetIPsecRule", - "Get-NetFirewallAddressFilter", - "Get-NetFirewallApplicationFilter", - "Get-NetFirewallDynamicKeywordAddress", - "Get-NetFirewallInterfaceFilter", - "Get-NetFirewallInterfaceTypeFilter", - "Get-NetFirewallPortFilter", - "Get-NetFirewallProfile", - "Get-NetFirewallRule", - "Get-NetFirewallSecurityFilter", - "Get-NetFirewallServiceFilter", - "Get-NetFirewallSetting", - "Get-NetIPsecDospSetting", - "Get-NetIPsecMainModeCryptoSet", - "Get-NetIPsecMainModeRule", - "Get-NetIPsecMainModeSA", - "Get-NetIPsecPhase1AuthSet", - "Get-NetIPsecPhase2AuthSet", - "Get-NetIPsecQuickModeCryptoSet", - "Get-NetIPsecQuickModeSA", - "Get-NetIPsecRule", - "New-NetFirewallRule", - "New-NetFirewallDynamicKeywordAddress", - "New-NetIPsecDospSetting", - "New-NetIPsecMainModeCryptoSet", - "New-NetIPsecMainModeRule", - "New-NetIPsecPhase1AuthSet", - "New-NetIPsecPhase2AuthSet", - "New-NetIPsecQuickModeCryptoSet", - "New-NetIPsecRule", - "Open-NetGPO", - "Remove-NetFirewallRule", - "Remove-NetFirewallDynamicKeywordAddress", - "Remove-NetIPsecDospSetting", - "Remove-NetIPsecMainModeCryptoSet", - "Remove-NetIPsecMainModeRule", - "Remove-NetIPsecMainModeSA", - "Remove-NetIPsecPhase1AuthSet", - "Remove-NetIPsecPhase2AuthSet", - "Remove-NetIPsecQuickModeCryptoSet", - "Remove-NetIPsecQuickModeSA", - "Remove-NetIPsecRule", - "Rename-NetFirewallRule", - "Rename-NetIPsecMainModeCryptoSet", - "Rename-NetIPsecMainModeRule", - "Rename-NetIPsecPhase1AuthSet", - "Rename-NetIPsecPhase2AuthSet", - "Rename-NetIPsecQuickModeCryptoSet", - "Rename-NetIPsecRule", - "Save-NetGPO", - "Find-NetIPsecRule", - "Set-NetFirewallAddressFilter", - "Set-NetFirewallApplicationFilter", - "Set-NetFirewallInterfaceFilter", - "Set-NetFirewallInterfaceTypeFilter", - "Set-NetFirewallPortFilter", - "Set-NetFirewallProfile", - "Set-NetFirewallRule", - "Set-NetFirewallSecurityFilter", - "Set-NetFirewallServiceFilter", - "Set-NetFirewallSetting", - "Set-NetIPsecDospSetting", - "Set-NetIPsecMainModeCryptoSet", - "Set-NetIPsecMainModeRule", - "Set-NetIPsecPhase1AuthSet", - "Set-NetIPsecPhase2AuthSet", - "Set-NetIPsecQuickModeCryptoSet", - "Set-NetIPsecRule", - "Show-NetFirewallRule", - "Show-NetIPsecRule", - "Sync-NetIPsecRule", - "Update-NetIPsecRule", - "Update-NetFirewallDynamicKeywordAddress" - ) - CmdletsToExport = @( - "Get-DAPolicyChange", - "New-NetIPsecAuthProposal", - "New-NetIPsecMainModeCryptoProposal", - "New-NetIPsecQuickModeCryptoProposal" - ) - AliasesToExport = @( - ) -} - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.types.ps1xml deleted file mode 100644 index 9edcf8c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSecurity/NetSecurity.types.ps1xml +++ /dev/null @@ -1,1085 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallRule - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Enabled - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]($this.PSBase.CimInstanceProperties['Enabled'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Enabled'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]$x - - - Profile - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]($this.PSBase.CimInstanceProperties['Profiles'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Profiles'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]$x - - - Platform - Platforms - - - Direction - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Direction]($this.PSBase.CimInstanceProperties['Direction'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Direction'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Direction]$x - - - Action - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]($this.PSBase.CimInstanceProperties['Action'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Action'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]$x - - - EdgeTraversalPolicy - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EdgeTraversal]($this.PSBase.CimInstanceProperties['EdgeTraversalPolicy'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EdgeTraversalPolicy'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EdgeTraversal]$x - - - LSM - LooseSourceMapping - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetConSecRule - - - IPsecRuleName - InstanceID - - - ID - IPsecRuleName - - - Name - IPsecRuleName - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Enabled - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]($this.PSBase.CimInstanceProperties['Enabled'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Enabled'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]$x - - - Profile - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]($this.PSBase.CimInstanceProperties['Profiles'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Profiles'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]$x - - - Platform - Platforms - - - Mode - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecMode]($this.PSBase.CimInstanceProperties['Mode'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Mode'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecMode]$x - - - InboundSecurity - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.SecurityPolicy]($this.PSBase.CimInstanceProperties['InboundSecurity'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['InboundSecurity'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.SecurityPolicy]$x - - - SecIn - InboundSecurity - - - OutboundSecurity - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.SecurityPolicy]($this.PSBase.CimInstanceProperties['OutboundSecurity'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['OutboundSecurity'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.SecurityPolicy]$x - - - SecOut - OutboundSecurity - - - QuickModeCryptoSet - $x = $this.PSBase.CimInstanceProperties["QuickModeCryptoSet"].Value; if ($x -ne $null -and $x.ToUpperInvariant().Equals("{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE2}")) { "Default"; } else { $x } - param($x) -if ($x.PSTypeNames.Contains("Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoSet")) { - $this.PSBase.CimInstanceProperties["QuickModeCryptoSet"].Value = $x.ID; -} elseif ($x.ToUpperInvariant().Equals("DEFAULT")) { - $this.PSBase.CimInstanceProperties["QuickModeCryptoSet"].Value = "{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE2}"; -} else { - $this.PSBase.CimInstanceProperties["QuickModeCryptoSet"].Value = $x; -} - - - Phase1AuthSet - $x = $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value; if ($x -ne $null -and $x.ToUpperInvariant().Equals("{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE3}")) { "Default"; } else { $x } - param($x) -if ($x.PSTypeNames.Contains("Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMAuthSet")) { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = $x.ID; -} elseif ($x.ToUpperInvariant().Equals("DEFAULT")) { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = "{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE3}"; -} else { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = $x; -} - - - Phase2AuthSet - $x = $this.PSBase.CimInstanceProperties["Phase2AuthSet"].Value; if ($x -ne $null -and $x.ToUpperInvariant().Equals("{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE4}")) { "Default"; } else { $x } - param($x) -if ($x.PSTypeNames.Contains("Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEEMAuthSet")) { - $this.PSBase.CimInstanceProperties["Phase2AuthSet"].Value = $x.ID; -} elseif ($x.ToUpperInvariant().Equals("DEFAULT")) { - $this.PSBase.CimInstanceProperties["Phase2AuthSet"].Value = "{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE4}"; -} else { - $this.PSBase.CimInstanceProperties["Phase2AuthSet"].Value = $x; -} - - - KeyModule - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.KeyModule]($this.PSBase.CimInstanceProperties['KeyModule'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['KeyModule'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.KeyModule]$x - - - RemoteTunnelHostname - RemoteTunnelEndpointDNSName - - - ForwardPathLifetime - MaxReturnPathLifetimeSeconds - - - EncryptedTunnelBypass - BypassTunnelIfEncrypted - - - User - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["Users"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["Users"].Value = $x - - - Machine - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["Machines"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["Machines"].Value = $x - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeRule - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Enabled - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]($this.PSBase.CimInstanceProperties['Enabled'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Enabled'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Enabled]$x - - - Profile - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]($this.PSBase.CimInstanceProperties['Profiles'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Profiles'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]$x - - - Platform - Platforms - - - MainModeCryptoSet - $x = $this.PSBase.CimInstanceProperties["MainModeCryptoSet"].Value; if ($x -ne $null -and $x.ToUpperInvariant().Equals("{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE1}")) { "Default"; } else { $x } - param($x) -if ($x.PSTypeNames.Contains("Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMCryptoSet")) { - $this.PSBase.CimInstanceProperties["MainModeCryptoSet"].Value = $x.ID; -} elseif ($x.ToUpperInvariant().Equals("DEFAULT")) { - $this.PSBase.CimInstanceProperties["MainModeCryptoSet"].Value = "{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE1}"; -} else { - $this.PSBase.CimInstanceProperties["MainModeCryptoSet"].Value = $x; -} - - - Phase1AuthSet - $x = $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value; if ($x -ne $null -and $x.ToUpperInvariant().Equals("{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE3}")) { "Default"; } else { $x } - param($x) -if ($x.PSTypeNames.Contains("Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMAuthSet")) { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = $x.ID; -} elseif ($x.ToUpperInvariant().Equals("DEFAULT")) { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = "{E5A5D32A-4BCE-4E4D-B07F-4AB1BA7E5FE3}"; -} else { - $this.PSBase.CimInstanceProperties["Phase1AuthSet"].Value = $x; -} - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetAddressFilter - - - LocalAddress - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["LocalAddress"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["LocalAddress"].Value = $x - - - LocalIP - LocalAddress - - - RemoteAddress - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["RemoteAddress"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["RemoteAddress"].Value = $x - - - RemoteIP - RemoteAddress - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetApplicationFilter - - - Program - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["AppPath"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["AppPath"].Value = $x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetInterfaceFilter - - - InterfaceAlias - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["InterfaceAlias"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["InterfaceAlias"].Value = $x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetInterfaceTypeFilter - - - InterfaceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.InterfaceType]($this.PSBase.CimInstanceProperties['InterfaceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['InterfaceType'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.InterfaceType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetNetworkLayerSecurityFilter - - - Authentication - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Authentication]($this.PSBase.CimInstanceProperties['Authentication'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Authentication'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Authentication]$x - - - Encryption - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Encryption]($this.PSBase.CimInstanceProperties['Encryption'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Encryption'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Encryption]$x - - - LocalUser - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["LocalUsers"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["LocalUsers"].Value = $x - - - RemoteUser - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["RemoteUsers"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["RemoteUsers"].Value = $x - - - RemoteMachine - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["RemoteMachines"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["RemoteMachines"].Value = $x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetProtocolPortFilter - - - Protocol - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["Protocol"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["Protocol"].Value = $x - - - LocalPort - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["LocalPort"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["LocalPort"].Value = $x - - - RemotePort - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["RemotePort"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["RemotePort"].Value = $x - - - IcmpType - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableStringArray($this.PSBase.CimInstanceProperties["IcmpType"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["IcmpType"].Value = $x - - - DynamicTarget - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DynamicTransport]($this.PSBase.CimInstanceProperties['DynamicTransport'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['DynamicTransport'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DynamicTransport]$x - - - DynamicTransport - DynamicTarget - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetServiceFilter - - - Service - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatNullableString($this.PSBase.CimInstanceProperties["ServiceName"].Value) - param($x) ; $this.PSBase.CimInstanceProperties["ServiceName"].Value = $x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEP1AuthSet - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Proposal - Proposals - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEP2AuthSet - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Proposal - Proposals - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEBasicAuthProposal - - - AuthenticationMethod - [Microsoft.Windows.Firewall.Commands.AuthenticationMethod]($this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.AuthenticationMethod]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEKerbAuthProposal - - - AuthenticationMethod - [Microsoft.Windows.Firewall.Commands.AuthenticationMethod]($this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.AuthenticationMethod]$x - - - Proxy - KerbProxy - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEPSKAuthProposal - - - AuthenticationMethod - [Microsoft.Windows.Firewall.Commands.AuthenticationMethod]($this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.AuthenticationMethod]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKECertAuthProposal - - - AuthenticationMethod - [Microsoft.Windows.Firewall.Commands.AuthenticationMethod]($this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.AuthenticationMethod]$x - - - Authority - TrustedCA - - - AuthorityType - [Microsoft.Windows.Firewall.Commands.CertificateAuthorityType]($this.PSBase.CimInstanceProperties['TrustedCAType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['TrustedCAType'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.CertificateAuthorityType]$x - - - AccountMapping - MapToAccount - - - Signing - [Microsoft.Windows.Firewall.Commands.CertificateSigningAlgorithm]($this.PSBase.CimInstanceProperties['SigningAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['SigningAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.CertificateSigningAlgorithm]$x - - - SubjectName - CertName - - - SubjectNameType - [Microsoft.Windows.Firewall.Commands.CertificateSubjectType]($this.PSBase.CimInstanceProperties['CertNameType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['CertNameType'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.CertificateSubjectType]$x - - - ExtendedKeyUsage - EKUs - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMCryptoSet - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Proposal - Proposals - - - MaxMinutes - MaxLifetimeMinutes - - - MaxSessions - MaxLifetimeSessions - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoSet - - - Name - InstanceID - - - ID - Name - - - DisplayName - $this.PSBase.CimInstanceProperties["DisplayName"].Value - param($x) ; $this.PSBase.CimInstanceProperties["DisplayName"].Value = $x ; $this.PSBase.CimInstanceProperties["ElementName"].Value = $x - - - Group - RuleGroup - - - Proposal - Proposals - - - PerfectForwardSecrecyGroup - [Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]($this.PSBase.CimInstanceProperties['PfsGroupID'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PfsGroupID'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]$x - - - PfsGroup - PerfectForwardSecrecyGroup - - - PrimaryStatus - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]($this.PSBase.CimInstanceProperties['PrimaryStatus'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PrimaryStatus'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PrimaryStatus]$x - - - Status - $this.PSBase.CimInstanceProperties["Status"].Value + " (" + ($this.PSBase.CimInstanceProperties["StatusCode"].Value + 0) + ")" - - - EnforcementStatus - [Microsoft.Windows.Firewall.Commands.Formatting.Formatter]::FormatEnforcementStatus($this.PSBase.CimInstanceProperties["EnforcementStatus"].Value) - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEMMCryptoProposal - - - Encryption - [Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]($this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]$x - - - Hash - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['HashAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['HashAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - KeyExchange - [Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]($this.PSBase.CimInstanceProperties['GroupID'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['GroupID'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIKEQMCryptoProposal - - - Encapsulation - [Microsoft.Windows.Firewall.Commands.IPsecEncapsulation]($this.PSBase.CimInstanceProperties['Encapsulation'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Encapsulation'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.IPsecEncapsulation]$x - - - AhHash - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['HashAlgorithmAH'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['HashAlgorithmAH'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - EspHash - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['HashAlgorithmESP'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['HashAlgorithmESP'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - Encryption - [Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]($this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]$x - - - MaxKilobytes - MaxLifetimeKilobytes - - - MaxMinutes - MaxLifetimeMinutes - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallProfile - - - Profile - Name - - - Enabled - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['Enabled'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Enabled'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - DefaultInboundAction - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]($this.PSBase.CimInstanceProperties['DefaultInboundAction'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['DefaultInboundAction'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]$x - - - DefaultOutboundAction - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]($this.PSBase.CimInstanceProperties['DefaultOutboundAction'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['DefaultOutboundAction'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Action]$x - - - AllowInboundRules - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowInboundRules'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowInboundRules'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - AllowLocalFirewallRules - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowLocalFirewallRules'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowLocalFirewallRules'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - AllowLocalIPsecRules - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowLocalIPsecRules'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowLocalIPsecRules'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - AllowUserApps - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowUserApps'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowUserApps'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - AllowUserPorts - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowUserPorts'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowUserPorts'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - AllowUnicastResponseToMulticast - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['AllowUnicastResponseToMulticast'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowUnicastResponseToMulticast'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - NotifyOnListen - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['NotifyOnListen'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['NotifyOnListen'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - EnableStealthModeForIPsec - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['EnableStealthModeForIPsec'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EnableStealthModeForIPsec'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - LogMaxSizeKilobytes - $x = $this.PSBase.CimInstanceProperties["LogMaxSizeKilobytes"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("4294967296")) { "NotConfigured"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("NOTCONFIGURED")) { $this.PSBase.CimInstanceProperties["LogMaxSizeKilobytes"].Value = 4294967296; } else { $this.PSBase.CimInstanceProperties["LogMaxSizeKilobytes"].Value = [uint32]$x; } - - - LogAllowed - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['LogAllowed'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['LogAllowed'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - LogBlocked - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['LogBlocked'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['LogBlocked'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - LogIgnored - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['LogIgnored'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['LogIgnored'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecDeltaCollection - - - Action - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.ChangeAction]($this.PSBase.CimInstanceProperties['Action'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Action'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.ChangeAction]$x - - - EndpointType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EndpointType]($this.PSBase.CimInstanceProperties['EndpointType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EndpointType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EndpointType]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecDoSPSetting - - - Name - ElementName - - - IpV6IPsecUnauthDscp - $x = $this.PSBase.CimInstanceProperties["IpV6IPsecUnauthDscp"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("255")) { "Disabled"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("DISABLED")) { $this.PSBase.CimInstanceProperties["IpV6IPsecUnauthDscp"].Value = 255; } else { $this.PSBase.CimInstanceProperties["IpV6IPsecUnauthDscp"].Value = [uint32]$x; } - - - IpV6IPsecAuthDscp - $x = $this.PSBase.CimInstanceProperties["IpV6IPsecAuthDscp"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("255")) { "Disabled"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("DISABLED")) { $this.PSBase.CimInstanceProperties["IpV6IPsecAuthDscp"].Value = 255; } else { $this.PSBase.CimInstanceProperties["IpV6IPsecAuthDscp"].Value = [uint32]$x; } - - - IcmpV6Dscp - $x = $this.PSBase.CimInstanceProperties["IcmpV6Dscp"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("255")) { "Disabled"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("DISABLED")) { $this.PSBase.CimInstanceProperties["IcmpV6Dscp"].Value = 255; } else { $this.PSBase.CimInstanceProperties["IcmpV6Dscp"].Value = [uint32]$x; } - - - IpV6FilterExemptDscp - $x = $this.PSBase.CimInstanceProperties["IpV6FilterExemptDscp"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("255")) { "Disabled"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("DISABLED")) { $this.PSBase.CimInstanceProperties["IpV6FilterExemptDscp"].Value = 255; } else { $this.PSBase.CimInstanceProperties["IpV6FilterExemptDscp"].Value = [uint32]$x; } - - - DefBlockExemptDscp - $x = $this.PSBase.CimInstanceProperties["DefBlockExemptDscp"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().ToUpperInvariant().Equals("255")) { "Disabled"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("DISABLED")) { $this.PSBase.CimInstanceProperties["DefBlockExemptDscp"].Value = 255; } else { $this.PSBase.CimInstanceProperties["DefBlockExemptDscp"].Value = [uint32]$x; } - - - EnabledKeyingModules - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DospKeyModules]($this.PSBase.CimInstanceProperties['EnabledKeyingModules'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EnabledKeyingModules'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DospKeyModules]$x - - - FilteringFlags - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DospFlags]($this.PSBase.CimInstanceProperties['FilteringFlags'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['FilteringFlags'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.DospFlags]$x - - - EffectiveAddressFamily - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.AddressVersion]($this.PSBase.CimInstanceProperties['EffectiveAddressFamily'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EffectiveAddressFamily'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.AddressVersion]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPsecIdentity - - - ImpersonationType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.ImpersonationType]($this.PSBase.CimInstanceProperties['ImpersonationType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['ImpersonationType'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.ImpersonationType]$x - - - AuthenticationMethod - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EffectiveAuthenticationMethod]($this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AuthenticationMethod'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EffectiveAuthenticationMethod]$x - - - Flags - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IdFlags]($this.PSBase.CimInstanceProperties['Flags'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Flags'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IdFlags]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetMainModeSA - - - ID - Name - - - CipherAlgorithm - [Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]($this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['CipherAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]$x - - - HashAlgorithm - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['HashAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['HashAlgorithm'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - GroupId - [Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]($this.PSBase.CimInstanceProperties['GroupId'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['GroupId'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]$x - - - KeyModule - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EffectiveKeyModule]($this.PSBase.CimInstanceProperties['KeyModule'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['KeyModule'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.EffectiveKeyModule]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetQuickModeSA - - - Name - InstanceID - - - ID - Name - - - EncapsulationMode - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecMode]($this.PSBase.CimInstanceProperties['EncapsulationMode'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EncapsulationMode'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecMode]$x - - - Direction - $dir = $this.PSBase.CimInstanceProperties["InboundDirection"]; if ($dir -ne $null -and $dir.Value -ne $null -and $dir.Value.Equals($true)) { [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Direction]::Inbound } else { [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Direction]::Outbound } - - - FirstTransformType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmSATransformType]($this.PSBase.CimInstanceProperties['FirstTransformType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['FirstTransformType'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmSATransformType]$x - - - FirstIntegrityAlgorithm - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['FirstIntegrityAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['FirstIntegrityAlgorithm'].Value = [System.Uint32][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - FirstCipherAlgorithm - [Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]($this.PSBase.CimInstanceProperties['FirstCipherAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['FirstCipherAlgorithm'].Value = [System.Uint32][Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]$x - - - SecondTransformType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmSATransformType]($this.PSBase.CimInstanceProperties['SecondTransformType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['SecondTransformType'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmSATransformType]$x - - - SecondIntegrityAlgorithm - [Microsoft.Windows.Firewall.Commands.HashAlgorithm]($this.PSBase.CimInstanceProperties['SecondIntegrityAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['SecondIntegrityAlgorithm'].Value = [System.Uint32][Microsoft.Windows.Firewall.Commands.HashAlgorithm]$x - - - SecondCipherAlgorithm - [Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]($this.PSBase.CimInstanceProperties['SecondCipherAlgorithm'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['SecondCipherAlgorithm'].Value = [System.Uint32][Microsoft.Windows.Firewall.Commands.EncryptionAlgorithm]$x - - - Flags - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmBundleFlags]($this.PSBase.CimInstanceProperties['Flags'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Flags'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.QmBundleFlags]$x - - - PfsGroupId - [Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]($this.PSBase.CimInstanceProperties['PfsGroupId'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PfsGroupId'].Value = [System.Uint16][Microsoft.Windows.Firewall.Commands.DiffieHellmanGroup]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSecuritySettingData - - - Name - ElementName - - - Exemptions - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.TrafficExemption]($this.PSBase.CimInstanceProperties['Exemptions'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Exemptions'].Value = [System.Uint32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.TrafficExemption]$x - - - EnableStatefulFtp - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['EnableStatefulFtp'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EnableStatefulFtp'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - EnableStatefulPptp - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['EnableStatefulPptp'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EnableStatefulPptp'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - ActiveProfile - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]($this.PSBase.CimInstanceProperties['Profile'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['Profile'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profile]$x - - - RequireFullAuthSupport - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]($this.PSBase.CimInstanceProperties['RequireFullAuthSupport'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['RequireFullAuthSupport'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.GpoBoolean]$x - - - CertValidationLevel - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.CRLCheck]($this.PSBase.CimInstanceProperties['CertValidationLevel'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['CertValidationLevel'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.CRLCheck]$x - - - AllowIPsecThroughNAT - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecThroughNAT]($this.PSBase.CimInstanceProperties['AllowIPsecThroughNAT'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['AllowIPsecThroughNAT'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.IPsecThroughNAT]$x - - - MaxSAIdleTimeSeconds - $x = $this.PSBase.CimInstanceProperties["MaxSAIdleTimeSeconds"]; if ($x -ne $null -and $x.Value -ne $null -and $x.Value.ToString().Equals("0")) { "NotConfigured"; } else { $x.Value } - param($x) - if ($x.ToUpperInvariant().Equals("NOTCONFIGURED")) { $this.PSBase.CimInstanceProperties["MaxSAIdleTimeSeconds"].Value = 0; } else { $this.PSBase.CimInstanceProperties["MaxSAIdleTimeSeconds"].Value = [uint32]$x; } - - - KeyEncoding - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.KeyEncoding]($this.PSBase.CimInstanceProperties['KeyEncoding'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['KeyEncoding'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.KeyEncoding]$x - - - EnablePacketQueuing - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PacketQueuing]($this.PSBase.CimInstanceProperties['EnablePacketQueuing'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['EnablePacketQueuing'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PacketQueuing]$x - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetGPO - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetFirewallDynamicKeywordAddress - - - PolicyStoreSourceType - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]($this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value + 0) - param($x); $this.PSBase.CimInstanceProperties['PolicyStoreSourceType'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.PolicyStoreType]$x - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSecurity/ko/Microsoft.Windows.Firewall.Commands.Resources.dll b/newton-cn/bin/v1.0/Modules/NetSecurity/ko/Microsoft.Windows.Firewall.Commands.Resources.dll deleted file mode 100644 index bab060cdbdba617399a240d3958458320f0ce919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 zcmeHLYiwLc6+Sm{9Ov1DJV*)+lO`!~vbo*G&ckk#cw=uKjUUU}NeHxx@7^8nUghqc z)qU96qJSk@l~xsPc_fuUB0>;R1QC@elt?Y0P|;8oeh{kCA5~QfR6(=?wE|Vp@SVB4 z_NI2C{6LD3GV3{a=FFLMzBzN|<-SipN;8S53Hj0`qNnlY)TQaw$vB!9e(dZ*`q7*h zS3hm^zPNg*8AB3PoNDKk|g*iJpN$QC0q4O!c_DH`>H>Pxm#%^!yNrgBS=UnJhSWv0tD&lkE7-3{jBN(ZqO2f#2YxV^ ziPWi{e2(ZCz8APW82XM^ z3|OKU!N}9F=D;9jQRb;zv**CR9(;#U|0>Jxa#bF6P8g;!8{?b3FR zR)Wr@R?tP1(zHXDplVpmZohgS1hkO*(Voy zp;MM@6L#{B>x2!heU9y`K#hdvA;&AIvB2Ez_;Sp0T@yXZmRAT6@qvnbTLxyqbxC?O zSPep1Hgj^sl{SxpOgmJ5o!{eFMNb8xV+VCs4Fv1N$fZ9h{ZR)R>00c=4HfB!4glmP zph#~L*EMOG7)5Qqun;hlfDoteyz*ZEsrSzhJaF$5*%M!R_E*#-45MYHAY&E^ix+cs zVareMz5C$G_SYU9KSgV?e#Ws*(7hRpgX_7$bcz=h$Lv%8e)KOhK3{xb)mY~vuRgf# z`CBf`I4gfDZW%tjfy%POi9^`tF%$ z7Mz-W`?{BppH=5?`p@AnU3g{l8@(M5XS!#<`Nuo%yKU+AGw0tu@db7A`G4-o{^{i1 zh1XYnGxO>@M>lNz(4HThlN;YX*D~v#Ct8f!j=qY~49!@6$hRu}%F7(HWrgQ#sN`e1 z4am*bfxW|^j)}Mu>+M!CF*l-H`4#2sFf~Qmb%hSTK)|P%NLj!caI-_oJ8zTtB}8}RhLJC~dol`r%T0)Ely@C_zpM_aqte@+ z-@4V>Y;WF@>S$}1$!#5LrW%V^R^8^H3^@*XBjl7#_we77j~sdErQDLoI<0TNaQgJN z-+%94TVMXeOZ|WT@h4yS+j9{62Qs#PijWT?bNUwYEa(y$^6^WfF{BdplcEfHWRpb| za7$V^5ew}@!zdbDa;QMv=;ol4)L)B+sERI<_Mywo({;$uQCK;R=JnGx55ZVOWy(Vf zYxbb~XAoW$3p27h%08H3v^x)DhjX$FtCK!Fa5m4DUcBTL%n?( ze|B)cX>_C;F*2M9n?+|-;;K0!b}QFaV>#*ZnZYCAX)p~RZuLcNj?fdAQ^?!O8-+#8 zQ>cXHiP~%c`Vi`)%0UCqz?kKGSo#TJxnovU>#WOOd4>^c*E`Lx-SHU5ZCn;ynwsi& z!MNoJcGn))?Xw&&zEeo44_a=$v<^D-t$M1K8=U`N58y-u_!U#G`tglEISrr3%5R5H zbrE&q9IU4eO*l(&atzWD&r@ ztdftf#?*s~0j<0x@5Zi=%O7-lG=j~Y(^~z47(%NBZh&?RTfc)=Pq!2Ou<0SZB@AE+ zYv)FB8cicwCQ0>QJI)#SfO_%BFmRSBoIDk6qlyt(s7bBA54LRRRj{pqD#T)8X&=%| z8_^^%I%C3i4>Sb2uLIde%mSJ_X+eYRLCE@$o*Y*S=uDkc)PZk1ULqzkr~Bv==*wP; zPhSrx+y>NBF`IM4xa^;li(pUdZq{TA~F z;AI|h9CsdkEfD!t%oE2#86F_op=0ZEyC00OtHoC*Uc&}_9^l71^YCC5cCM@=j#X{^ X2DyG75b^(vwsl@V2sbQWKM(vDi+Oyy diff --git a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.cdxml b/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.cdxml deleted file mode 100644 index fe18d98..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.cdxml +++ /dev/null @@ -1,146 +0,0 @@ - - - - 1.0 - NetSwitchTeam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.format.ps1xml deleted file mode 100644 index aa64e0b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeam.format.ps1xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - MSFT_NetSwitchTeam_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimV2\MSFT_NetSwitchTeam - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSwitchTeam - - - - - - - - Name - - - - $members = Get-NetSwitchTeamMember * $_.Name - $mnames= @() - foreach($m in @($members)){$mnames += $m.Name} - $mnames - - - - - - - - - - MSFT_NetSwitchTeam_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimV2\MSFT_NetSwitchTeam - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSwitchTeam - - - - - - 10 - - - - 15 - - - - - - - Name - - - - $members = $_ | Get-NetSwitchTeamMember - $mnames = @() - foreach($m in @($members)){$mnames += $m.Name} - $mnames - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.cdxml b/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.cdxml deleted file mode 100644 index 6e87fa3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.cdxml +++ /dev/null @@ -1,25 +0,0 @@ - - - - 1.0 - NetSwitchTeamMember - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.format.ps1xml deleted file mode 100644 index 725009c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/MSFT_NetSwitchTeamMember.format.ps1xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - MSFT_NetSwitchTeamMember_ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimV2\MSFT_NetSwitchTeamMember - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSwitchTeamMember - - - - - - - - Name - - - - InterfaceDescription - - - - Team - - - - TransmitLinkSpeed - - - - ReceiveLinkSpeed - - - - - - - - MSFT_NetSwitchTeamMember_TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT\StandardCimV2\MSFT_NetSwitchTeamMember - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetSwitchTeamMember - - - - - - 12 - - - - 15 - - - - 10 - - - - 10 - - - - 10 - - - - - - - Name - - - InterfaceDescription - - - Team - - - TransmitLinkSpeed - - - ReceiveLinkSpeed - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/NetSwitchTeam.psd1 b/newton-cn/bin/v1.0/Modules/NetSwitchTeam/NetSwitchTeam.psd1 deleted file mode 100644 index b8930a7..0000000 --- a/newton-cn/bin/v1.0/Modules/NetSwitchTeam/NetSwitchTeam.psd1 +++ /dev/null @@ -1,44 +0,0 @@ -<#++ - -Copyright (c) Microsoft Corporation - -Module Name: - - NetSwitchTeam.psd1 - -Abstract: - - This module is the container schema for the NetSwitchTeam* CIM object - CmdLets. - ---#> - -@{ - GUID = 'E83097B1-4470-4F37-8CE3-A6B0AC5ED8F5' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "� Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=285556" - ModuleVersion = '1.0.0.0' - PowerShellVersion = '5.1' - NestedModules = @( - 'MSFT_NetSwitchTeam.cdxml', - 'MSFT_NetSwitchTeamMember.cdxml' - ) - FormatsToProcess = @( - 'MSFT_NetSwitchTeam.format.ps1xml', - 'MSFT_NetSwitchTeamMember.format.ps1xml' - ) - FunctionsToExport = @( - 'New-NetSwitchTeam', - 'Remove-NetSwitchTeam', - 'Get-NetSwitchTeam', - 'Rename-NetSwitchTeam', - 'Add-NetSwitchTeamMember', - 'Remove-NetSwitchTeamMember', - 'Get-NetSwitchTeamMember' - ) - CmdletsToExport = @() - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetCompartment.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetCompartment.cdxml deleted file mode 100644 index 9300a8e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetCompartment.cdxml +++ /dev/null @@ -1,29 +0,0 @@ - - - - 1.0 - NetCompartment - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPAddress.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPAddress.cdxml deleted file mode 100644 index 22303eb..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPAddress.cdxml +++ /dev/null @@ -1,436 +0,0 @@ - - - - 1.0.0 - NetIPAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPInterface.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPInterface.cdxml deleted file mode 100644 index eb03145..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPInterface.cdxml +++ /dev/null @@ -1,479 +0,0 @@ - - - - 1.0.0 - - NetIPInterface - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv4Protocol.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv4Protocol.cdxml deleted file mode 100644 index 2fed106..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv4Protocol.cdxml +++ /dev/null @@ -1,239 +0,0 @@ - - - - 1.0.0 - NetIPv4Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv6Protocol.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv6Protocol.cdxml deleted file mode 100644 index 23f8d78..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetIPv6Protocol.cdxml +++ /dev/null @@ -1,292 +0,0 @@ - - - - 1.0.0 - NetIPv6Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetNeighbor.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetNeighbor.cdxml deleted file mode 100644 index d867b42..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetNeighbor.cdxml +++ /dev/null @@ -1,234 +0,0 @@ - - - - 1.0.0 - NetNeighbor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetOffloadGlobalSetting.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetOffloadGlobalSetting.cdxml deleted file mode 100644 index 1eca6cc..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetOffloadGlobalSetting.cdxml +++ /dev/null @@ -1,109 +0,0 @@ - - - - 1.0.0 - NetOffloadGlobalSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetPrefixPolicy.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetPrefixPolicy.cdxml deleted file mode 100644 index 184fbeb..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetPrefixPolicy.cdxml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 1.0.0 - NetPrefixPolicy - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetRoute.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetRoute.cdxml deleted file mode 100644 index fe8ffe5..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetRoute.cdxml +++ /dev/null @@ -1,376 +0,0 @@ - - - - 1.0.0 - NetRoute - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPConnection.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPConnection.cdxml deleted file mode 100644 index 2af7fcc..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPConnection.cdxml +++ /dev/null @@ -1,100 +0,0 @@ - - - - 1.0.0 - NetTCPConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPSetting.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPSetting.cdxml deleted file mode 100644 index 233829d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTCPSetting.cdxml +++ /dev/null @@ -1,324 +0,0 @@ - - - - 1.0.0 - NetTCPSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTransportFilter.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTransportFilter.cdxml deleted file mode 100644 index 88369a7..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetTransportFilter.cdxml +++ /dev/null @@ -1,126 +0,0 @@ - - - - 1.0.0 - NetTransportFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPEndpoint.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPEndpoint.cdxml deleted file mode 100644 index 245b8a0..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPEndpoint.cdxml +++ /dev/null @@ -1,39 +0,0 @@ - - - - 1.0.0 - NetUDPEndpoint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPSetting.cdxml b/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPSetting.cdxml deleted file mode 100644 index 279ceb5..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/MSFT_NetUDPSetting.cdxml +++ /dev/null @@ -1,46 +0,0 @@ - - - - 1.0.0 - NetUDPSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/NetIPConfiguration.psm1 b/newton-cn/bin/v1.0/Modules/NetTCPIP/NetIPConfiguration.psm1 deleted file mode 100644 index 289a33b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/NetIPConfiguration.psm1 +++ /dev/null @@ -1,300 +0,0 @@ -class NetIPConfiguration -{ - [string] $ComputerName - [string] $InterfaceAlias - [int] $InterfaceIndex - [string] $InterfaceDescription - [int] $CompartmentId - [Microsoft.Management.Infrastructure.CimInstance] $NetAdapter - [Microsoft.Management.Infrastructure.CimInstance] $NetCompartment - [Microsoft.Management.Infrastructure.CimInstance] $NetIPv6Interface - [Microsoft.Management.Infrastructure.CimInstance] $NetIPv4Interface - [Microsoft.Management.Infrastructure.CimInstance] $NetProfile - [Microsoft.Management.Infrastructure.CimInstance[]] $AllIPAddresses - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv6Address - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv6TemporaryAddress - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv6LinkLocalAddress - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv4Address - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv6DefaultGateway - [Microsoft.Management.Infrastructure.CimInstance[]] $IPv4DefaultGateway - [Microsoft.Management.Infrastructure.CimInstance[]] $DNSServer - [bool] $Detailed = $false -} - -# .Link -# http://go.microsoft.com/fwlink/?LinkId=253567 -# .ExternalHelp NetIPConfiguration.psm1-help.xml -function Get-NetIPConfiguration -{ - [CmdletBinding(DefaultParametersetName="Alias" )] - Param( - [Parameter(ParameterSetName = "Alias", Mandatory = $false, ValueFromPipelineByPropertyName = $true, Position = 0)] [Alias('ifAlias')] [string]$InterfaceAlias = "*", - [Parameter(ParameterSetName = "Index", Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias('ifIndex')] [int]$InterfaceIndex = -1, - [Parameter(ParameterSetName = "All", Mandatory = $true)] [Alias('IncludeAllInterfaces')] [switch]$All = $false, - [Parameter(Mandatory = $false)] [Alias('IncludeAllCompartments')] [switch]$AllCompartments = $false, - [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [int]$CompartmentId = -1, - [Parameter(Mandatory = $false)] [switch]$Detailed = $false, - [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [Alias('PSComputerName','ComputerName')] [Microsoft.Management.Infrastructure.CimSession]$CimSession = $null - ) - Process - { - # - # Session defaults to localhost. - # - if ($CimSession -eq $null) - { - $CimSession = New-CimSession - $ComputerName = (Get-CimInstance win32_ComputerSystem).name - } - else - { - $ComputerName = $CimSession.ComputerName - } - - # - # Return hidden interfaces if the user query is for a specific interface. - # - if (($InterfaceAlias -ne "*") -or ($InterfaceIndex -ne -1)) - { - $All = $true - } - - # - # CompartmentId requires the AllCompartments switch. - # - if ($CompartmentId -ne -1) - { - $AllCompartments = $true; - $Compartments = Get-NetCompartment -CompartmentId $CompartmentId -CimSession $CimSession - } - else - { - $Compartments = Get-NetCompartment -CimSession $CimSession - } - - # - # Retrieve NetAdapters and NetIPInterfaces matching the user query. - # - if ($InterfaceIndex -ne -1) - { - $Adapters = Get-NetAdapter -InterfaceIndex $InterfaceIndex -IncludeHidden -CimSession $CimSession -ErrorAction SilentlyContinue - $IPInterfaces = Get-NetIPInterface -InterfaceIndex $InterfaceIndex -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession - } - elseif ($InterfaceAlias -ne "*") - { - $Adapters = Get-NetAdapter -Name $InterfaceAlias -IncludeHidden -CimSession $CimSession -ErrorAction SilentlyContinue - $IPInterfaces = Get-NetIPInterface -InterfaceAlias $InterfaceAlias -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession - } - else - { - $Adapters = Get-NetAdapter -IncludeHidden -CimSession $CimSession - $IPInterfaces = Get-NetIPInterface -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession - } - - # - # Filter out other compartments if the user query is for a specific compartment. - # - if ($CompartmentId -ne -1) - { - $IPInterfaces = $IPInterfaces | where CompartmentId -eq $CompartmentId; - } - - # - # Get the indices of all interfaces that are bound to IP. - # - $IfIndices = $IPInterfaces | select -ExpandProperty ifIndex -Unique - - # - # Create a NetIPConfiguration for each interface index. - # - $IPConfigs = @() - - # - # Check if the Get-NetConnectionProfile cmdlet is available. - # - $NetConnectionCmdletExists = Get-Command Get-NetConnectionProfile -ErrorAction SilentlyContinue - - # - # Check if the Get-DnsClientServerAddress cmdlet is available. - # - $DNSClientCmdletExists = Get-Command Get-DnsClientServerAddress -ErrorAction SilentlyContinue - - foreach ($IfIndex in $IfIndices) - { - $IPConfig = [NetIPConfiguration]::New() - $IPConfig.ComputerName = $ComputerName - $IPConfig.InterfaceIndex = $IfIndex - $IPConfig.Detailed = $Detailed - - # - # Link up the NetAdapter and NetIPInterface objects. - # - $IPConfig.NetAdapter = $Adapters | where InterfaceIndex -eq $IfIndex - $IPConfig.NetIPv4Interface = $IPInterfaces | where {($_.InterfaceIndex -eq $IfIndex ) -and ($_.AddressFamily -eq "IPv4")} - $IPConfig.NetIPv6Interface = $IPInterfaces | where {($_.InterfaceIndex -eq $IfIndex ) -and ($_.AddressFamily -eq "IPv6")} - - # - # Filter out hidden objects if necessary. - # - if ((-not $All) -and ($IPConfig.NetAdapter.Hidden)) - { - continue - } - - # - # Filter out objects with no underlying NetAdapter, with two exceptions: - # - VPN interfaces have a LowestIfNetLuid, but should not be linked to a NetAdapter. - # - Isolation interfaces also have an IsolationId and should be linked to a NetAdapter. - # - if ($IPConfig.NetAdapter -eq $null) - { - if ($IPConfig.NetIPv6Interface.LowestIfNetLuid -ne 0) - { - if ($IPConfig.NetIPv6Interface.IsolationId -ne 0) - { - $IPConfig.NetAdapter = $Adapters | where NetLuid -eq $IPConfig.NetIPv6Interface.LowestIfNetLuid - } - } - elseif ($IPConfig.NetIPv4Interface.LowestIfNetLuid -ne 0) - { - if ($IPConfig.NetIPv4Interface.IsolationId -ne 0) - { - $IPConfig.NetAdapter = $Adapters | where NetLuid -eq $IPConfig.NetIPv4Interface.LowestIfNetLuid - } - } - else - { - continue - } - } - - # - # Find the best object to source the interface alias and compartment ID. - # - if ($IPConfig.NetIPv6Interface -ne $null) - { - $IPConfig.InterfaceAlias = $IPConfig.NetIPv6Interface.InterfaceAlias - $IPConfig.CompartmentId = $IPConfig.NetIPv6Interface.CompartmentId - } - elseif ($IPConfig.NetIPv4Interface -ne $null) - { - $IPConfig.InterfaceAlias = $IPConfig.NetIPv4Interface.InterfaceAlias - $IPConfig.CompartmentId = $IPConfig.NetIPv4Interface.CompartmentId - } - - # - # Escape wilcard characters in interface alias. - # - $IfAlias = [System.Management.Automation.WildcardPattern]::Escape($IPConfig.InterfaceAlias) - - # - # Get NetAdapter properties. - # - if ($IPConfig.NetAdapter -ne $null) - { - $IPConfig.InterfaceDescription = $IPConfig.NetAdapter.InterfaceDescription - } - - $IPConfig.NetCompartment = $Compartments | where CompartmentId -eq $IPConfig.CompartmentId - if ($NetConnectionCmdletExists) - { - $IPConfig.NetProfile = Get-NetConnectionProfile -InterfaceAlias $IfAlias -CimSession $CimSession -ErrorAction SilentlyContinue - } - - # Begin Verbose Section - write-verbose "----------------------------------------" - write-verbose "Interface $IfAlias" - write-verbose "----------------------------------------" - write-verbose "InterfaceAlias: Get-NetAdapter -Name '$IfAlias' -CimSession $ComputerName | select InterfaceAlias" - write-verbose "InterfaceIndex: Get-NetAdapter -Name '$IfAlias' -CimSession $ComputerName | select InterfaceIndex" - write-verbose "InterfaceDescription: Get-NetAdapter -Name '$IfAlias' -CimSession $ComputerName | select InterfaceDescription" - write-verbose "NetCompartment: Get-NetCompartment -CompartmentId '$CompartmentId' -CimSession $ComputerName" - if ($NetConnectionCmdletExists) - { - write-verbose "NetProfile: Get-NetConnectionProfile -InterfaceAlias '$IfAlias' -CimSession $ComputerName" - } - write-verbose "NetIPv6Interface: Get-NetIPInterface -InterfaceAlias '$IfAlias' -AddressFamily IPv6 -PolicyStore ActiveStore -CimSession $ComputerName" - write-verbose "NetIPv4Interface: Get-NetIPInterface -InterfaceAlias '$IfAlias' -AddressFamily IPv4 -PolicyStore ActiveStore -CimSession $ComputerName" - # End Verbose Section - - # - # Get IPv6 addresses. - # - $Addresses = Get-NetIPAddress -InterfaceAlias $IfAlias -AddressFamily IPv6 -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession -ErrorAction SilentlyContinue - write-verbose "IPv6Address: Get-NetIPAddress -InterfaceAlias '$IfAlias' -AddressFamily IPv6 -PolicyStore ActiveStore -CimSession $ComputerName" - - $IPv6Addresses = @() - $IPv6LinkLocalAddresses = @() - $IPv6TemporaryAddresses = @() - - foreach ($Address in $Addresses) - { - if (($Address.PrefixOrigin -eq "RouterAdvertisement") -and ($Address.SuffixOrigin -eq "Random")) - { - $IPv6TemporaryAddresses += $Address - } - elseif (($Address.PrefixOrigin -eq "WellKnown") -and ($Address.SuffixOrigin -eq "Link")) - { - $IPv6LinkLocalAddresses += $Address - } - else - { - $IPv6Addresses += $Address - } - } - - $IPConfig.IPv6Address = $IPv6Addresses - $IPConfig.IPv6TemporaryAddress = $IPv6TemporaryAddresses - $IPConfig.IPv6LinkLocalAddress = $IPv6LinkLocalAddresses - - # - # Get IPv4 addresses. - # - $IPConfig.IPv4Address = Get-NetIPAddress -InterfaceAlias $IfAlias -AddressFamily IPv4 -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession -ErrorAction SilentlyContinue - write-verbose "IPv4Address: Get-NetIPAddress -InterfaceAlias '$IfAlias' -AddressFamily IPv4 -PolicyStore ActiveStore -CimSession $ComputerName" - - $IPConfig.AllIPAddresses = $IPConfig.IPv4Address + $IPv6Addresses + $IPv6TemporaryAddresses + $IPv6LinkLocalAddresses - - # - # Get default gateway. - # - $IPConfig.IPv6DefaultGateway = Get-NetRoute -DestinationPrefix "::/0" -InterfaceAlias $IfAlias -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession -ErrorAction SilentlyContinue - $IPConfig.IPv4DefaultGateway = Get-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceAlias $IfAlias -IncludeAllCompartments:$AllCompartments -PolicyStore ActiveStore -CimSession $CimSession -ErrorAction SilentlyContinue - write-verbose "IPv6DefaultGateway: Get-NetRoute -DestinationPrefix '::/0' -InterfaceAlias '$IfAlias' -PolicyStore ActiveStore -CimSession $ComputerName | select NextHop" - write-verbose "IPv4DefaultGateway: Get-NetRoute -DestinationPrefix '0.0.0.0/0' -InterfaceAlias '$IfAlias' -PolicyStore ActiveStore -CimSession $ComputerName | select NextHop" - - # - # Get DNS servers. - # - if ($DNSClientCmdletExists) - { - $IPConfig.DNSServer = Get-DnsClientServerAddress -InterfaceAlias $IfAlias -CimSession $CimSession -ErrorAction SilentlyContinue | Sort AddressFamily -Descending - write-verbose "DNSServer: Get-DnsClientServerAddress -InterfaceAlias '$IfAlias' -CimSession $ComputerName | select ServerAddresses" - } - - $IPConfigs += $IPConfig - } - - # - # Group the results by compartment, where each group is sorted as: - # - first the interfaces with connected NetAdapters sorted by media type, - # - then the interfaces without a NetAdapter, - # - then the interfaces with disconnected NetAdapters sorted by media type. - # - $Return = @() - $CompartmentIds = $IPInterfaces | select -ExpandProperty CompartmentId -Unique | sort {$_.CompartmentId} - - foreach ($CompartmentId in $CompartmentIds) - { - $IPConfigsInCompartment = $IPConfigs | where {$_.CompartmentId -eq $CompartmentId} - $Return += $IPConfigsInCompartment | where {$_.NetAdapter.Status -eq "Up" } | sort {$_.NetAdapter.MediaType, $_.InterfaceIndex} - $Return += $IPConfigsInCompartment | where {$_.NetAdapter -eq $null} | sort {$_.InterfaceIndex} - $Return += $IPConfigsInCompartment | where {($_.NetAdapter -ne $null) -and ($_.NetAdapter.Status -ne "Up")} | sort {$_.NetAdapter.MediaType} | sort {$_.NetAdapter.Status} -Descending - } - - return $Return - } -} - -New-Alias gip Get-NetIPConfiguration -Export-ModuleMember -Alias gip -Function Get-NetIPConfiguration diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/NetTCPIP.psd1 b/newton-cn/bin/v1.0/Modules/NetTCPIP/NetTCPIP.psd1 deleted file mode 100644 index 5950847..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/NetTCPIP.psd1 +++ /dev/null @@ -1,78 +0,0 @@ -@{ - GUID = "{2d0b6c7f-16a0-4185-843f-ae47b6db4551}" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390802" - ModuleVersion = "1.0.0.0" - - PowerShellVersion = "5.1" - # Supported PSEditions - CompatiblePSEditions = @('Desktop', 'Core') - - NestedModules = @( - "MSFT_NetCompartment", - "MSFT_NetIPAddress", - "MSFT_NetIPInterface", - "MSFT_NetIPv4Protocol", - "MSFT_NetIPv6Protocol", - "MSFT_NetNeighbor", - "MSFT_NetOffloadGlobalSetting", - "MSFT_NetPrefixPolicy", - "MSFT_NetRoute", - "MSFT_NetTCPConnection", - "MSFT_NetTCPSetting", - "MSFT_NetTransportFilter", - "MSFT_NetUDPEndpoint", - "MSFT_NetUDPSetting", - "NetIPConfiguration", - "Test-NetConnection" - ) - - FormatsToProcess = @('Tcpip.Format.ps1xml') - TypesToProcess = @('Tcpip.Types.ps1xml') - - FunctionsToExport = @( - "Get-NetIPAddress", - "Get-NetIPInterface", - "Get-NetIPv4Protocol", - "Get-NetIPv6Protocol", - "Get-NetNeighbor", - "Get-NetOffloadGlobalSetting", - "Get-NetPrefixPolicy", - "Get-NetRoute", - "Get-NetTCPConnection", - "Get-NetTCPSetting", - "Get-NetTransportFilter", - "Get-NetUDPEndpoint", - "Get-NetUDPSetting", - "Get-NetCompartment", - "Get-NetIPConfiguration" - "New-NetIPAddress", - "New-NetNeighbor", - "New-NetRoute", - "New-NetTransportFilter", - "Remove-NetIPAddress", - "Remove-NetNeighbor", - "Remove-NetRoute", - "Remove-NetTransportFilter", - "Find-NetRoute", - "Set-NetIPAddress", - "Set-NetIPInterface", - "Set-NetIPv4Protocol", - "Set-NetIPv6Protocol", - "Set-NetNeighbor", - "Set-NetOffloadGlobalSetting", - "Set-NetRoute", - "Set-NetTCPSetting", - "Set-NetUDPSetting", - "Test-NetConnection" - ) - - AliasesToExport = @( - "gip", - "TNC" - ) - - CmdletsToExport = @() -} diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Format.ps1xml b/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Format.ps1xml deleted file mode 100644 index 6fab2b6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Format.ps1xml +++ /dev/null @@ -1,2043 +0,0 @@ - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetRoute - - - - - - 7 - - - 46 - - - 40 - - - 11 - - - - 8 - - - - 11 - - - - - - - InterfaceIndex - - - DestinationPrefix - - - NextHop - - - RouteMetric - Right - - - InterfaceMetric - - - Store - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetRoute - - - - - - - DestinationPrefix - - - InterfaceIndex - - - InterfaceAlias - - - CompartmentId - - - AddressFamily - - - NextHop - - - Publish - - - State - - - RouteMetric - - - InterfaceMetric - - - Protocol - - - - - if ($_.ValidLifetime.Days -eq 10675199 -and - $_.ValidLifetime.Hours -eq 2 -and - $_.ValidLifetime.Minutes -eq 48 -and - $_.ValidLifetime.Seconds -eq 5 -and - $_.ValidLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.ValidLifetime.ToString() - } - - - - - - - if ($_.PreferredLifetime.Days -eq 10675199 -and - $_.PreferredLifetime.Hours -eq 2 -and - $_.PreferredLifetime.Minutes -eq 48 -and - $_.PreferredLifetime.Seconds -eq 5 -and - $_.PreferredLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.PreferredLifetime.ToString() - } - - - - - - Store - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPAddress - - - - - - - IPAddress - - - InterfaceIndex - - - InterfaceAlias - - - AddressFamily - - - Type - - - PrefixLength - - - PrefixOrigin - - - SuffixOrigin - - - AddressState - - - - - if ($_.ValidLifetime.Days -eq 10675199 -and - $_.ValidLifetime.Hours -eq 2 -and - $_.ValidLifetime.Minutes -eq 48 -and - $_.ValidLifetime.Seconds -eq 5 -and - $_.ValidLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.ValidLifetime.ToString() - } - - - - - - - if ($_.PreferredLifetime.Days -eq 10675199 -and - $_.PreferredLifetime.Hours -eq 2 -and - $_.PreferredLifetime.Minutes -eq 48 -and - $_.PreferredLifetime.Seconds -eq 5 -and - $_.PreferredLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.PreferredLifetime.ToString() - } - - - - - SkipAsSource - - - - Store - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPAddress - - - - - - 7 - - - 47 - - - 12 - - - 12 - - - 12 - - - 12 - - - - 11 - - - - - - - InterfaceIndex - - - IPAddress - - - PrefixLength - Right - - - PrefixOrigin - - - SuffixOrigin - - - AddressState - - - Store - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNeighbor - - - - - - 7 - - - 50 - - - 21 - - - 11 - - - - 15 - - - - - - - InterfaceIndex - - - IPAddress - - - LinkLayerAddress - - - State - - - Store - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNeighbor - - - - - - - IPAddress - - - InterfaceIndex - - - InterfaceAlias - - - AddressFamily - - - LinkLayerAddress - - - State - - - - Store - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPInterface - - - - - - 7 - - - 31 - - - 13 - - - - 12 - - - 15 - - - 8 - - - 15 - - - - 11 - - - - - - - InterfaceIndex - - - InterfaceAlias - - - AddressFamily - - - NlMtu - Right - - - InterfaceMetric - Right - - - Dhcp - - - ConnectionState - - - Store - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPInterface - - - - - - - InterfaceIndex - - - InterfaceAlias - - - CompartmentId - - - AddressFamily - - - Forwarding - - - ClampMss - - - Advertising - - - NlMtu - - - - AutomaticMetric - - - InterfaceMetric - - - NeighborDiscoverySupported - - - NeighborUnreachabilityDetection - - - BaseReachableTime - - - - ReachableTime - - - - RetransmitTime - - - - DadTransmits - - - DadRetransmitTime - - - - RouterDiscovery - - - ManagedAddressConfiguration - - - OtherStatefulConfiguration - - - WeakHostSend - - - WeakHostReceive - - - IgnoreDefaultRoutes - - - - - if ($_.AdvertisedRouterLifetime.Days -eq 10675199 -and - $_.AdvertisedRouterLifetime.Hours -eq 2 -and - $_.AdvertisedRouterLifetime.Minutes -eq 48 -and - $_.AdvertisedRouterLifetime.Seconds -eq 5 -and - $_.AdvertisedRouterLifetime.Milliseconds -eq 477) { - "Infinite ([TimeSpan]::MaxValue)" - } else { - $_.AdvertisedRouterLifetime.ToString() - } - - - - - AdvertiseDefaultRoute - - - CurrentHopLimit - - - ForceArpNdWolPattern - - - DirectedMacWolPattern - - - EcnMarking - - - Dhcp - - - ConnectionState - - - - Store - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetPrefixPolicy - - - - - 60 - - - 10 - - - 10 - - - - - - - Prefix - - - Precedence - Right - - - Label - Right - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetPrefixPolicy - - - - - - - Prefix - - - Precedence - - - Label - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv6Protocol - - - - - - - DefaultHopLimit - - - NeighborCacheLimit - - - - RouteCacheLimit - - - - ReassemblyLimit - - - - IcmpRedirects - - - SourceRoutingBehavior - - - DhcpMediaSense - - - MediaSenseEventLog - - - MldLevel - - - MldVersion - - - MulticastForwarding - - - GroupForwardedFragments - - - RandomizeIdentifiers - - - AddressMaskReply - - - UseTemporaryAddresses - - - MaxDadAttempts - - - - - - if ($_.MaxValidLifetime.Days -eq 10675199 -and - $_.MaxValidLifetime.Hours -eq 2 -and - $_.MaxValidLifetime.Minutes -eq 48 -and - $_.MaxValidLifetime.Seconds -eq 5 -and - $_.MaxValidLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.MaxValidLifetime.ToString() - } - - - - - - - if ($_.MaxPreferredLifetime.Days -eq 10675199 -and - $_.MaxPreferredLifetime.Hours -eq 2 -and - $_.MaxPreferredLifetime.Minutes -eq 48 -and - $_.MaxPreferredLifetime.Seconds -eq 5 -and - $_.MaxPreferredLifetime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.MaxPreferredLifetime.ToString() - } - - - - - - - if ($_.RegenerateTime.Days -eq 10675199 -and - $_.RegenerateTime.Hours -eq 2 -and - $_.RegenerateTime.Minutes -eq 48 -and - $_.RegenerateTime.Seconds -eq 5 -and - $_.RegenerateTime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.RegenerateTime.ToString() - } - - - - - - - if ($_.MaxRandomTime.Days -eq 10675199 -and - $_.MaxRandomTime.Hours -eq 2 -and - $_.MaxRandomTime.Minutes -eq 48 -and - $_.MaxRandomTime.Seconds -eq 5 -and - $_.MaxRandomTime.Milliseconds -eq 477) { - “Infinite ([TimeSpan]::MaxValue)” - } else { - $_.MaxRandomTime.ToString() - } - - - - - DeadGatewayDetection - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv6Protocol - - - - - 15 - - - 13 - - - 14 - - - 11 - - - 20 - - - 21 - - - 14 - - - - - - - DefaultHopLimit - - - IcmpRedirects - - - DhcpMediaSense - - - MldVersion - - - RandomizeIdentifiers - - - UseTemporaryAddresses - - - MaxDadAttempts - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv4Protocol - - - - - - - DefaultHopLimit - - - NeighborCacheLimit - - - - RouteCacheLimit - - - - ReassemblyLimit - - - - IcmpRedirects - - - SourceRoutingBehavior - - - DhcpMediaSense - - - MediaSenseEventLog - - - IGMPLevel - - - IGMPVersion - - - MulticastForwarding - - - GroupForwardedFragments - - - RandomizeIdentifiers - - - AddressMaskReply - - - MinimumMtu - - - - DeadGatewayDetection - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv4Protocol - - - - - 15 - - - 13 - - - 14 - - - 11 - - - 20 - - - - - - - DefaultHopLimit - - - IcmpRedirects - - - DhcpMediaSense - - - IGMPVersion - - - RandomizeIdentifiers - - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPSetting - - - - - - - SettingName - - - MinRto - - - - InitialCongestionWindow - - - - CongestionProvider - - - CwndRestart - - - DelayedAckTimeout - - - - DelayedAckFrequency - - - MemoryPressureProtection - - - AutoTuningLevelLocal - - - AutoTuningLevelGroupPolicy - - - AutoTuningLevelEffective - - - EcnCapability - - - Timestamps - - - InitialRto - - - - ScalingHeuristics - - - DynamicPortRangeStartPort - - - DynamicPortRangeNumberOfPorts - - - AutomaticUseCustom - - - NonSackRttResiliency - - - ForceWS - - - MaxSynRetransmissions - - - AutoReusePortRangeStartPort - - - AutoReusePortRangeNumberOfPorts - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPSetting - - - - - 11 - - - 18 - - - - 10 - - - - 14 - - - 11 - - - 17 - - - 17 - - - 24 - - - - - - - SettingName - - - CongestionProvider - - - MinRto - Right - - - InitialRto - Right - - - CwndRestart - - - DelayedAckTimeout - Right - - - DelayedAckFrequency - Right - - - AutoTuningLevelEffective - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetUDPSetting - - - - - - - DynamicPortRangeStartPort - - - DynamicPortRangeNumberOfPorts - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetUDPSetting - - - - - 25 - - - 30 - - - - - - - DynamicPortRangeStartPort - - - DynamicPortRangeNumberOfPorts - - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTransportFilter - - - - - - - SettingName - - - Protocol - - - LocalPortStart - - - LocalPortEnd - - - RemotePortStart - - - RemotePortEnd - - - DestinationPrefix - - - - - - - - - TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTransportFilter - - - - - 12 - - - 8 - - - 14 - - - 12 - - - 15 - - - 13 - - - 39 - - - - - - - SettingName - - - Protocol - - - LocalPortStart - - - LocalPortEnd - - - RemotePortStart - - - RemotePortEnd - - - DestinationPrefix - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPConnection - - - - - 35 - - - 9 - - - 35 - - - 10 - - - 11 - - - 14 - - - 14 - - - - - - - LocalAddress - - - LocalPort - - - RemoteAddress - - - RemotePort - - - State - - - AppliedSetting - - - OwningProcess - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPConnection - - - - - - - LocalAddress - - - LocalPort - - - RemoteAddress - - - RemotePort - - - State - - - AppliedSetting - - - OwningProcess - - - - - if ($_.CreationTime.Year -eq 1600) { - "N/A" - } else { - $_.CreationTime.ToString() - } - - - - - OffloadState - - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetUDPEndpoint - - - - - 40 - - - 15 - - - - - - - LocalAddress - - - LocalPort - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetUDPEndpoint - - - - - - - LocalAddress - - - LocalPort - - - OwningProcess - - - - - if ($_.CreationTime.Year -eq 1600) { - "N/A" - } else { - $_.CreationTime.ToString() - } - - - - - - - - - - - ListView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetCompartment - - - - - - - CompartmentId - - - CompartmentDescription - - - CompartmentGuid - - - - - - - - DefaultView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetOffloadGlobalSetting - - - - - - - ReceiveSideScaling - - - ReceiveSegmentCoalescing - - - Chimney - - - TaskOffload - - - NetworkDirect - - - NetworkDirectAcrossIPSubnets - - - PacketCoalescingFilter - - - - - - - - - NetIPConfiguration - - NetIPConfiguration - - - - - - - - - - Detailed - - ComputerName - - - - InterfaceAlias - - - - InterfaceIndex - - - - InterfaceDescription - - - - - - Detailed - - $_.NetCompartment.CompartmentId - - - - - - Detailed - - $_.NetCompartment.CompartmentDescription - - - - - - ($_.NetAdapter -ne $null) -and ($_.Detailed) - - $_.NetAdapter.LinkLayerAddress - - - - - - ($_.NetAdapter -ne $null) -and (($_.NetAdapter.Status -ne "Up") -or ($_.Detailed)) - - $_.NetAdapter.Status - - - - - - $_.NetProfile - - $_.NetProfile.Name - - - - - - ($_.NetProfile) -and ($_.Detailed) - - $_.NetProfile.NetworkCategory - - - - - - ($_.NetProfile) -and ($_.Detailed) - - $_.NetProfile.IPv6Connectivity - - - - - - ($_.NetProfile) -and ($_.Detailed) - - $_.NetProfile.IPv4Connectivity - - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and - ($_.IPv6Address.Count -ne 0) - - - - $output = ""; - foreach($Address in $_.IPv6Address) { - $output += $Address.IPv6Address + "`n"; - } - $output.Trim("`n"); - - - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and - ($_.IPv6TemporaryAddress.Count -ne 0) -and - ($_.Detailed) - - - - $output = ""; - foreach($Address in $_.IPv6TemporaryAddress) { - $output += $Address.IPv6Address + "`n"; - } - $output.Trim("`n"); - - - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and - ($_.IPv6LinkLocalAddress.Count -ne 0) -and - ($_.Detailed) - - - - $output = ""; - foreach($Address in $_.IPv6LinkLocalAddress) { - $output += $Address.IPv6Address + "`n"; - } - $output.Trim("`n"); - - - - - - - - ($_.NetIPv4Interface.ConnectionState -eq "Connected") -and - ($_.IPv4Address.Count -ne 0) - - - - $output = ""; - foreach($Address in $_.IPv4Address) { - $output += $Address.IPv4Address + "`n"; - } - $output.Trim("`n"); - - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") - - - $output = @(); - foreach($Route in $_.IPv6DefaultGateway) { - $output += $Route.NextHop; - } - $output; - - - - - - - ($_.NetIPv4Interface.ConnectionState -eq "Connected") - - - $output = @(); - foreach($Route in $_.IPv4DefaultGateway) { - $output += $Route.NextHop; - } - $output; - - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and ($_.Detailed) -and ($_.NetIPv6Interface.IsolationId -ne 0) - - $_.NetIPv6Interface.IsolationId - - - - - - ($_.NetIPv4Interface.ConnectionState -eq "Connected") -and ($_.Detailed) -and ($_.NetIPv4Interface.IsolationId -ne 0) - - $_.NetIPv4Interface.IsolationId - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and ($_.Detailed) - - $_.NetIPv6Interface.NlMTU - - - - - - ($_.NetIPv4Interface.ConnectionState -eq "Connected") -and ($_.Detailed) - - $_.NetIPv4Interface.NlMTU - - - - - - ($_.NetIPv6Interface.ConnectionState -eq "Connected") -and ($_.Detailed) - - $_.NetIPv6Interface.DHCP - - - - - - ($_.NetIPv4Interface.ConnectionState -eq "Connected") -and ($_.Detailed) - - $_.NetIPv4Interface.DHCP - - - - - - - ($_.DNSServer.Count -ne 0) -and - (($_.NetIPv4Interface.ConnectionState -eq "Connected") -or - ($_.NetIPv6Interface.ConnectionState -eq "Connected")) - - - - $output = ""; - foreach($Server in $_.DNSServer) { - foreach($Address in $Server.ServerAddresses) { - $output += $Address + "`n"; - } - }; - $output.Trim("`n"); - - - - - - - - - - - DefaultView - - TestNetConnectionResult - - - - - - - ComputerName - - - RemoteAddress - - - - - - ($_.RemotePort) -ne 0 - - - RemotePort - - - - - - ($_.Detailed) - - - - $output = ""; - foreach($Address in $_.ResolvedAddresses) { - $output += $Address.IPAddressToString + "`n"; - }; - foreach($PTRRecord in $($_.BasicNameResolution | where-object {$_.QueryType -eq "PTR"})) { - $output += $PTRRecord.NameHost + "`n"; - }; - $output.Trim("`n"); - - - - - - - (($_.RemotePort -ne 0) -and ($_.Detailed)) - - - - $output = ""; - foreach($Result in $_.MatchingIPsecRules) { - $output += $Result.DisplayName + "`n"; - }; - $output.Trim("`n"); - - - - - - (($_.RemotePort -ne 0) -and ($_.Detailed)) - - - NetworkIsolationContext - - - - - ((($_.RemotePort -ne 0) -and ($_.Detailed)) -and (!$_.IsAdmin)) - - - IsAdmin - - - InterfaceAlias - - - SourceAddress - - - - - - $_.Detailed - - - - $_.NetRoute.NextHop - - - - - - (($_.RemotePort -eq 0) -or (!$_.TcpTestSucceeded)) - - - PingSucceeded - - - - - - ($_.PingReplyDetails -ne $null) - - - - $_.PingReplyDetails.RoundTripTime.ToString() + " ms"; - - - - - - - ($_.RemotePort) -ne 0 - - - TcpTestSucceeded - - - - - - ($_.TraceRoute -ne $null) - - - - $output = ""; - foreach($Result in $_.TraceRoute) { - $output += $Result + "`n"; - }; - $output.Trim("`n"); - - - - - - - - - TableView - - TestNetConnectionResult - - - - - 15 - - - 10 - - - 30 - - - 20 - - - - 25 - - - 35 - - - - - - - ComputerName - - - RemotePort - - - RemoteAddress - - - PingSucceeded - - - - $_.PingReplyDetails.RoundTripTime.ToString() + " ms"; - - - - TcpTestSucceeded - - - - - - - - DefaultView - - NetRouteDiagnostics - - - - - - - ComputerName - - - RemoteAddress - - - - - - (($_.ConstrainSourceAddress -ne [System.Net.IPAddress]::IPv6Any) -and - ($_.ConstrainSourceAddress -ne [System.Net.IPAddress]::Any)) - - - ConstrainSourceAddress - - - - - - ($_.ConstrainInterfaceIndex -ne 0) - - - ConstrainInterfaceIndex - - - SelectedSourceAddress - - - OutgoingInterfaceIndex - - - - - $output = "DestinationPrefix: "; - $output += $_.SelectedNetRoute.DestinationPrefix + "`n"; - $output += "NextHop: "; - $output += $_.SelectedNetRoute.NextHop; - $output; - - - - - - - ($_.Detailed) - - - - $output = ""; - foreach($Event in $_.DestinationAddressSelectionEvents) { - $output += $Event + "`n`n"; - }; - $output.Trim("`n`n"); - - - - - - - ($_.Detailed) - - - - $output = ""; - foreach($Event in $_.RouteSelectionEvents) { - $output += $Event + "`n`n"; - }; - $output.Trim("`n`n"); - - - - - - - ($_.Detailed) - - - - $output = ""; - foreach($Event in $_.SourceAddressSelectionEvents) { - $output += $Event + "`n`n"; - }; - $output.Trim("`n`n"); - - - - RouteDiagnosticsSucceeded - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Types.ps1xml b/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Types.ps1xml deleted file mode 100644 index b0700fb..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/Tcpip.Types.ps1xml +++ /dev/null @@ -1,925 +0,0 @@ - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetRoute - - - Publish - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Publish]($this.PSBase.CimInstanceProperties['Publish'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Publish'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Publish]$newValue - - - - Protocol - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Protocol]($this.PSBase.CimInstanceProperties['Protocol'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Protocol'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Protocol]$newValue - - - - Store - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Store]($this.PSBase.CimInstanceProperties['Store'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Store'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.Store]$newValue - - - - AddressFamily - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.AddressFamily]($this.PSBase.CimInstanceProperties['AddressFamily'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressFamily'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.AddressFamily]$newValue - - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['State'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.State]$newValue - - - - ifIndex - InterfaceIndex - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPAddress - - - PrefixOrigin - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.PrefixOrigin]($this.PSBase.CimInstanceProperties['PrefixOrigin'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['PrefixOrigin'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.PrefixOrigin]$newValue - - - - SuffixOrigin - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.SuffixOrigin]($this.PSBase.CimInstanceProperties['SuffixOrigin'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['SuffixOrigin'].Value = [System.Uint16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.SuffixOrigin]$newValue - - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Type'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.Type]$newValue - - - - Store - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.Store]($this.PSBase.CimInstanceProperties['Store'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Store'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.Store]$newValue - - - - AddressFamily - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.AddressFamily]($this.PSBase.CimInstanceProperties['AddressFamily'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressFamily'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.AddressFamily]$newValue - - - - AddressState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.AddressState]($this.PSBase.CimInstanceProperties['AddressState'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressState'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPAddress.AddressState]$newValue - - - - ToString - - - - ifIndex - InterfaceIndex - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetNeighbor - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['State'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.State]$newValue - - - - Store - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.Store]($this.PSBase.CimInstanceProperties['Store'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Store'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.Store]$newValue - - - - AddressFamily - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.AddressFamily]($this.PSBase.CimInstanceProperties['AddressFamily'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressFamily'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNeighbor.AddressFamily]$newValue - - - - ifIndex - InterfaceIndex - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetCompartment - - - CompartmentType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetCompartment.CompartmentType]($this.PSBase.CimInstanceProperties['CompartmentType'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['CompartmentType'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetCompartment.CompartmentType]$newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPInterface - - - Store - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Store]($this.PSBase.CimInstanceProperties['Store'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Store'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Store]$newValue - - - - AddressFamily - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AddressFamily]($this.PSBase.CimInstanceProperties['AddressFamily'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressFamily'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AddressFamily]$newValue - - - - Forwarding - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Forwarding]($this.PSBase.CimInstanceProperties['Forwarding'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Forwarding'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Forwarding]$newValue - - - - ClampMss - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ClampMss]($this.PSBase.CimInstanceProperties['ClampMss'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ClampMss'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ClampMss]$newValue - - - - Advertising - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Advertising]($this.PSBase.CimInstanceProperties['Advertising'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Advertising'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Advertising]$newValue - - - - NeighborUnreachabilityDetection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.NeighborUnreachabilityDetection]($this.PSBase.CimInstanceProperties['NeighborUnreachabilityDetection'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NeighborUnreachabilityDetection'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.NeighborUnreachabilityDetection]$newValue - - - - RouterDiscovery - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.RouterDiscovery]($this.PSBase.CimInstanceProperties['RouterDiscovery'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['RouterDiscovery'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.RouterDiscovery]$newValue - - - - NeighborDiscoverySupported - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.NeighborDiscoverySupported]($this.PSBase.CimInstanceProperties['NeighborDiscoverySupported'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NeighborDiscoverySupported'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.NeighborDiscoverySupported]$newValue - - - - ManagedAddressConfiguration - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ManagedAddressConfiguration]($this.PSBase.CimInstanceProperties['ManagedAddressConfiguration'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ManagedAddressConfiguration'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ManagedAddressConfiguration]$newValue - - - - OtherStatefulConfiguration - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.OtherStatefulConfiguration]($this.PSBase.CimInstanceProperties['OtherStatefulConfiguration'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['OtherStatefulConfiguration'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.OtherStatefulConfiguration]$newValue - - - - WeakHostSend - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.WeakHostSend]($this.PSBase.CimInstanceProperties['WeakHostSend'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['WeakHostSend'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.WeakHostSend]$newValue - - - - WeakHostReceive - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.WeakHostReceive]($this.PSBase.CimInstanceProperties['WeakHostReceive'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['WeakHostReceive'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.WeakHostReceive]$newValue - - - - IgnoreDefaultRoutes - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.IgnoreDefaultRoutes]($this.PSBase.CimInstanceProperties['IgnoreDefaultRoutes'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IgnoreDefaultRoutes'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.IgnoreDefaultRoutes]$newValue - - - - AdvertiseDefaultRoute - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AdvertiseDefaultRoute]($this.PSBase.CimInstanceProperties['AdvertiseDefaultRoute'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AdvertiseDefaultRoute'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AdvertiseDefaultRoute]$newValue - - - - ForceArpNdWolPattern - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ForceArpNdWolPattern]($this.PSBase.CimInstanceProperties['ForceArpNdWolPattern'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ForceArpNdWolPattern'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ForceArpNdWolPattern]$newValue - - - - DirectedMacWolPattern - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.DirectedMacWolPattern]($this.PSBase.CimInstanceProperties['DirectedMacWolPattern'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DirectedMacWolPattern'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.DirectedMacWolPattern]$newValue - - - - EcnMarking - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.EcnMarking]($this.PSBase.CimInstanceProperties['EcnMarking'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['EcnMarking'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.EcnMarking]$newValue - - - - Dhcp - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Dhcp]($this.PSBase.CimInstanceProperties['Dhcp'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Dhcp'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.Dhcp]$newValue - - - - ConnectionState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ConnectionState]($this.PSBase.CimInstanceProperties['ConnectionState'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ConnectionState'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.ConnectionState]$newValue - - - - AutomaticMetric - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AutomaticMetric]($this.PSBase.CimInstanceProperties['AutomaticMetric'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AutomaticMetric'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPInterface.AutomaticMetric]$newValue - - - - ifIndex - InterfaceIndex - - - ifAlias - InterfaceAlias - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv4Protocol - - - IcmpRedirects - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.IcmpRedirects]($this.PSBase.CimInstanceProperties['IcmpRedirects'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IcmpRedirects'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.IcmpRedirects]$newValue - - - - SourceRoutingBehavior - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.SourceRoutingBehavior]($this.PSBase.CimInstanceProperties['SourceRoutingBehavior'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['SourceRoutingBehavior'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.SourceRoutingBehavior]$newValue - - - - DhcpMediaSense - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.DhcpMediaSense]($this.PSBase.CimInstanceProperties['DhcpMediaSense'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DhcpMediaSense'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.DhcpMediaSense]$newValue - - - - MediaSenseEventLog - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MediaSenseEventLog]($this.PSBase.CimInstanceProperties['MediaSenseEventLog'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MediaSenseEventLog'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MediaSenseEventLog]$newValue - - - - MldLevel - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MldLevel]($this.PSBase.CimInstanceProperties['MldLevel'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MldLevel'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MldLevel]$newValue - - - - MldVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MldVersion]($this.PSBase.CimInstanceProperties['MldVersion'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MldVersion'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MldVersion]$newValue - - - - MulticastForwarding - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MulticastForwarding]($this.PSBase.CimInstanceProperties['MulticastForwarding'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MulticastForwarding'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.MulticastForwarding]$newValue - - - - GroupForwardedFragments - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.GroupForwardedFragments]($this.PSBase.CimInstanceProperties['GroupForwardedFragments'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['GroupForwardedFragments'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.GroupForwardedFragments]$newValue - - - - RandomizeIdentifiers - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.RandomizeIdentifiers]($this.PSBase.CimInstanceProperties['RandomizeIdentifiers'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['RandomizeIdentifiers'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.RandomizeIdentifiers]$newValue - - - - AddressMaskReply - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.AddressMaskReply]($this.PSBase.CimInstanceProperties['AddressMaskReply'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressMaskReply'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.AddressMaskReply]$newValue - - - - DeadGatewayDetection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.DeadGatewayDetection]($this.PSBase.CimInstanceProperties['DeadGatewayDetection'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DeadGatewayDetection'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv4Protocol.DeadGatewayDetection]$newValue - - - - IGMPLevel - MldLevel - - - IGMPVersion - MldVersion - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetIPv6Protocol - - - IcmpRedirects - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.IcmpRedirects]($this.PSBase.CimInstanceProperties['IcmpRedirects'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['IcmpRedirects'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.IcmpRedirects]$newValue - - - - SourceRoutingBehavior - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.SourceRoutingBehavior]($this.PSBase.CimInstanceProperties['SourceRoutingBehavior'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['SourceRoutingBehavior'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.SourceRoutingBehavior]$newValue - - - - DhcpMediaSense - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.DhcpMediaSense]($this.PSBase.CimInstanceProperties['DhcpMediaSense'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DhcpMediaSense'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.DhcpMediaSense]$newValue - - - - MediaSenseEventLog - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MediaSenseEventLog]($this.PSBase.CimInstanceProperties['MediaSenseEventLog'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MediaSenseEventLog'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MediaSenseEventLog]$newValue - - - - MldLevel - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MldLevel]($this.PSBase.CimInstanceProperties['MldLevel'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MldLevel'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MldLevel]$newValue - - - - MldVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MldVersion]($this.PSBase.CimInstanceProperties['MldVersion'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MldVersion'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MldVersion]$newValue - - - - MulticastForwarding - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MulticastForwarding]($this.PSBase.CimInstanceProperties['MulticastForwarding'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MulticastForwarding'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.MulticastForwarding]$newValue - - - - GroupForwardedFragments - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.GroupForwardedFragments]($this.PSBase.CimInstanceProperties['GroupForwardedFragments'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['GroupForwardedFragments'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.GroupForwardedFragments]$newValue - - - - RandomizeIdentifiers - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.RandomizeIdentifiers]($this.PSBase.CimInstanceProperties['RandomizeIdentifiers'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['RandomizeIdentifiers'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.RandomizeIdentifiers]$newValue - - - - AddressMaskReply - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.AddressMaskReply]($this.PSBase.CimInstanceProperties['AddressMaskReply'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressMaskReply'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.AddressMaskReply]$newValue - - - - UseTemporaryAddresses - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.UseTemporaryAddresses]($this.PSBase.CimInstanceProperties['UseTemporaryAddresses'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['UseTemporaryAddresses'].Value = [System.UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.UseTemporaryAddresses]$newValue - - - - DeadGatewayDetection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.DeadGatewayDetection]($this.PSBase.CimInstanceProperties['DeadGatewayDetection'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['DeadGatewayDetection'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPv6Protocol.DeadGatewayDetection]$newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPConnection - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['State'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.State]$newValue - - - - AppliedSetting - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.AppliedSetting]($this.PSBase.CimInstanceProperties['AppliedSetting'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AppliedSetting'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.AppliedSetting]$newValue - - - - OffloadState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.OffloadState]($this.PSBase.CimInstanceProperties['OffloadState'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['OffloadState'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPConnection.OffloadState]$newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTransportFilter - - - Protocol - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTransportFilter.Protocol]($this.PSBase.CimInstanceProperties['Protocol'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Protocol'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTransportFilter.Protocol]$newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPSetting - - - CwndRestart - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CwndRestart]($this.PSBase.CimInstanceProperties['CwndRestart'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['CwndRestart'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CwndRestart]$newValue - - - - MemoryPressureProtection - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.MemoryPressureProtection]($this.PSBase.CimInstanceProperties['MemoryPressureProtection'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['MemoryPressureProtection'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.MemoryPressureProtection]$newValue - - - - CongestionProvider - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider]($this.PSBase.CimInstanceProperties['CongestionProvider'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['CongestionProvider'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.CongestionProvider]$newValue - - - - AutoTuningLevelLocal - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelLocal]($this.PSBase.CimInstanceProperties['AutoTuningLevelLocal'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AutoTuningLevelLocal'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelLocal]$newValue - - - - EcnCapability - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.EcnCapability]($this.PSBase.CimInstanceProperties['EcnCapability'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['EcnCapability'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.EcnCapability]$newValue - - - - Timestamps - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.Timestamps]($this.PSBase.CimInstanceProperties['Timestamps'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Timestamps'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.Timestamps]$newValue - - - - ScalingHeuristics - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.ScalingHeuristics]($this.PSBase.CimInstanceProperties['ScalingHeuristics'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ScalingHeuristics'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.ScalingHeuristics]$newValue - - - - AutoTuningLevelGroupPolicy - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelGroupPolicy]($this.PSBase.CimInstanceProperties['AutoTuningLevelGroupPolicy'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AutoTuningLevelGroupPolicy'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelGroupPolicy]$newValue - - - - AutoTuningLevelEffective - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelEffective]($this.PSBase.CimInstanceProperties['AutoTuningLevelEffective'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AutoTuningLevelEffective'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutoTuningLevelEffective]$newValue - - - - AutomaticUseCustom - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutomaticUseCustom]($this.PSBase.CimInstanceProperties['AutomaticUseCustom'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AutomaticUseCustom'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.AutomaticUseCustom]$newValue - - - - NonSackRttResiliency - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.NonSackRttResiliency]($this.PSBase.CimInstanceProperties['NonSackRttResiliency'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NonSackRttResiliency'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.NonSackRttResiliency]$newValue - - - - ForceWS - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.ForceWS]($this.PSBase.CimInstanceProperties['ForceWS'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ForceWS'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTCPSetting.ForceWS]$newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetOffloadGlobalSetting - - - ReceiveSideScaling - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]($this.PSBase.CimInstanceProperties['ReceiveSideScaling'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ReceiveSideScaling'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]$newValue - - - - ReceiveSegmentCoalescing - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]($this.PSBase.CimInstanceProperties['ReceiveSegmentCoalescing'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['ReceiveSegmentCoalescing'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]$newValue - - - - Chimney - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.ChimneyEnum]($this.PSBase.CimInstanceProperties['Chimney'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Chimney'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.ChimneyEnum]$newValue - - - - TaskOffload - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]($this.PSBase.CimInstanceProperties['TaskOffload'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['TaskOffload'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]$newValue - - - - NetworkDirect - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]($this.PSBase.CimInstanceProperties['NetworkDirect'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NetworkDirect'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]$newValue - - - - NetworkDirectAcrossIPSubnets - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.AllowedBlockedEnum]($this.PSBase.CimInstanceProperties['NetworkDirectAcrossIPSubnets'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['NetworkDirectAcrossIPSubnets'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.AllowedBlockedEnum]$newValue - - - - PacketCoalescingFilter - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]($this.PSBase.CimInstanceProperties['PacketCoalescingFilter'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['PacketCoalescingFilter'].Value = [System.Byte][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetOffloadGlobalSetting.EnabledDisabledEnum]$newValue - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetTCPIP/Test-NetConnection.psm1 b/newton-cn/bin/v1.0/Modules/NetTCPIP/Test-NetConnection.psm1 deleted file mode 100644 index bf2e522..0000000 --- a/newton-cn/bin/v1.0/Modules/NetTCPIP/Test-NetConnection.psm1 +++ /dev/null @@ -1,643 +0,0 @@ -class NetRouteDiagnostics -{ - #Remote hostname used for routing - [String] $ComputerName - - #Remote IP address used for routing - [System.Net.IPAddress] $RemoteAddress - - #Resolved IP addresses for ComputerName - [System.Net.IPAddress[]] $ResolvedAddresses - - #SourceAddress constraint used for routing - [System.Net.IPAddress] $ConstrainSourceAddress - - #Interface constraint used for routing - [UInt32] $ConstrainInterfaceIndex - - #SourceAddress selected for routing - [Microsoft.Management.Infrastructure.CimInstance] $SelectedSourceAddress - - #Outgoing interface information selected for routing - [String] $OutgoingInterfaceAlias - [UInt32] $OutgoingInterfaceIndex - [String] $OutgoingInterfaceDescription - [Microsoft.Management.Infrastructure.CimInstance] $OutgoingNetAdapter - - #NetRoute selected for routing - [Microsoft.Management.Infrastructure.CimInstance] $SelectedNetRoute - - #Log file used for logging route events - [String] $LogFile - - #Events logged during routing - [String[]] $RouteSelectionEvents - [String[]] $SourceAddressSelectionEvents - [String[]] $DestinationAddressSelectionEvents - - #An indicator to the formatter that details should be shown - [Bool] $Detailed - - #If diagnostics succeeded - [Bool] $RouteDiagnosticsSucceeded -} - -class TestNetConnectionResult -{ - [String] $ComputerName - - #The Remote IP address used for connectivity - [System.Net.IPAddress] $RemoteAddress - - #Resolved IP addresses for ComputerName - [System.Net.IPAddress[]] $ResolvedAddresses - - #Indicates if the Ping was successful - [Bool] $PingSucceeded - - #Details of the ping - [System.Net.NetworkInformation.PingReply] $PingReplyDetails - - #The TCP socket - [System.Net.Sockets.Socket] $TcpClientSocket - - #If the test succeeded - [Bool] $TcpTestSucceeded - - #Remote port used - [UInt32] $RemotePort - - #The results of the traceroute - [String[]] $TraceRoute - - #An indicator to the formatter that details should be shown - [Bool] $Detailed - - #Information on the interface used for connectivity - [String] $InterfaceAlias - [UInt32] $InterfaceIndex - [String] $InterfaceDescription - [Microsoft.Management.Infrastructure.CimInstance] $NetAdapter - [Microsoft.Management.Infrastructure.CimInstance] $NetRoute - - #Source IP address - [Microsoft.Management.Infrastructure.CimInstance] $SourceAddress - - #DNS information - [Bool] $NameResolutionSucceeded - [Object] $BasicNameResolution - [Object] $LLMNRNetbiosRecords - [Object] $DNSOnlyRecords - [Object] $AllNameResolutionResults - - #NetSec Info - [Bool] $IsAdmin #If the test succeeded - [String] $NetworkIsolationContext - [Microsoft.Management.Infrastructure.CimInstance[]] $MatchingIPsecRules -} - -function Test-NetConnection -{ - [CmdletBinding( )] - Param( - [Parameter(Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] - [Alias('RemoteAddress','cn')] - [String] $ComputerName = "internetbeacon.msedge.net", - - [Parameter(ParameterSetName = "ICMP", Mandatory = $False)] - [Switch] $TraceRoute, - - [Parameter(ParameterSetName = "ICMP", Mandatory = $False)] - [ValidateRange(1,120)] - [Int] $Hops = 30, - - [Parameter(ParameterSetName = "CommonTCPPort", Mandatory = $True, Position = 1)] - [ValidateSet("HTTP", "RDP", "SMB", "WINRM")] - [String] $CommonTCPPort = "", - - [Parameter(ParameterSetName = "RemotePort", Mandatory = $True, ValueFromPipelineByPropertyName = $true)] - [Alias('RemotePort')] [ValidateRange(1,65535)] - [Int] $Port = 0, - - [Parameter(ParameterSetName = "NetRouteDiagnostics", Mandatory = $True)] - [Switch] $DiagnoseRouting, - - [Parameter(ParameterSetName = "NetRouteDiagnostics", Mandatory = $False)] - [String] $ConstrainSourceAddress = "", - - [Parameter(ParameterSetName = "NetRouteDiagnostics", Mandatory = $False)] - [UInt32] $ConstrainInterface = 0, - - [ValidateSet("Quiet", "Detailed")] - [String] $InformationLevel = "Standard" - ) - - Begin - { - - ##Description: Checks if the local execution context is elevated - ##Input: None - ##Output: Boolean. True if the local execution context is elevated. - function CheckIfAdmin - { - $CurrentIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent() - $CurrentSecurityPrincipal = [System.Security.Principal.WindowsPrincipal]::new($CurrentIdentity) - $AdminPrincipal = [System.Security.Principal.WindowsBuiltInRole]::Administrator - return $CurrentSecurityPrincipal.IsInRole($AdminPrincipal) - } - - ##Description: Resolves a hostname. - ##Input: The user-provided computername that will be pinged/tested - ##Output: The resolved IP addresses for computername - function ResolveTargetName - { - param ($TargetName) - - $Addresses = $null - try - { - $Addresses = [System.Net.Dns]::GetHostAddressesAsync($TargetName).GetAwaiter().GetResult() - } - catch - { - Write-Debug "Name resolution of $TargetName threw exception: $($_.Exception.Message)" - } - - if ($Addresses -eq $null) - { - Write-Warning "Name resolution of $TargetName failed" - } - - return $Addresses - } - - ##Description: Pings a specified host - ##Input: IP address to ping - ##Output: PingReplyDetails for the ping attempt to host - function PingTest - { - param ($TargetIPAddress) - - $Ping = [System.Net.NetworkInformation.Ping]::new() - $PingReplyDetails = $null - - ##Indeterminate progress indication - Write-Progress -Activity "Test-NetConnection :: $TargetIPAddress" -Status "Ping/ICMP Test" -CurrentOperation "Waiting for echo reply" -SecondsRemaining -1 -PercentComplete -1 - - try - { - $PingReplyDetails = $Ping.SendPingAsync($TargetIPAddress).GetAwaiter().Getresult() - } - catch - { - Write-Debug "Ping to $TargetIPAddress threw exception: $($_.Exception.Message)" - } - finally - { - $Ping.Dispose() - } - - return $PingReplyDetails - } - - ##Description: Traces a route to a specified IP address using repetitive echo requests - ##Input: IP address to trace against - ##Output: Array of IP addresses representing the traced route. The message from the ping reply status is emmited, if there is no response. - function TraceRoute - { - param ($TargetIPAddress,$Hops) - - $Ping = [System.Net.NetworkInformation.Ping]::new() - $PingOptions = [System.Net.NetworkInformation.PingOptions]::new() - $PingOptions.Ttl = 1 - [Byte[]]$DataBuffer = @() - 1..10 | foreach {$DataBuffer += [Byte]0} - $ReturnTrace = @() - - do - { - try - { - $CurrentHop = [int] $PingOptions.Ttl - write-progress -CurrentOperation "TTL = $CurrentHop" -Status "ICMP Echo Request (Max TTL = $Hops)" -Activity "TraceRoute" -PercentComplete -1 -SecondsRemaining -1 - $PingReplyDetails = $Ping.SendPingAsync($TargetIPAddress, 4000, $DataBuffer, $PingOptions).GetAwaiter().Getresult() - - if ($PingReplyDetails.Address -eq $null) - { - $ReturnTrace += $PingReplyDetails.Status.ToString() - } - else - { - $ReturnTrace += $PingReplyDetails.Address.IPAddressToString - } - } - catch - { - Write-Debug "Ping to $TargetIPAddress threw exception: $($_.Exception.Message)" - $ReturnTrace += "..." - } - $PingOptions.Ttl++ - } - while (($PingReplyDetails.Status -ne 'Success') -and ($PingOptions.Ttl -le $Hops)) - - ##If the last entry in the trace does not equal the target, then the trace did not successfully complete - if ($ReturnTrace[-1] -ne $TargetIPAddress) - { - $OutputString = "Trace route to destination " + $TargetIPAddress + " did not complete. Trace terminated :: " + $ReturnTrace[-1] - Write-Warning $OutputString - } - - $Ping.Dispose() - return $ReturnTrace - } - - ##Description: Attempts a TCP connection against a specified IP address - ##Input: IP address and port to connect to - ##Output: If the connection succeeded (as a boolean) - function TestTCP - { - param ($TargetIPAddress,$TargetPort) - - $ProgressString = "Test-NetConnection - " + $TargetIPAddress + ":" + $TargetPort - Write-Progress -Activity $ProgressString -Status "Attempting TCP connect" -CurrentOperation "Waiting for response" -SecondsRemaining -1 -PercentComplete -1 - - $Success = $False - $TCPClient = [System.Net.Sockets.TcpClient]::new($TargetIPAddress.AddressFamily) - try - { - $null = $TCPClient.ConnectAsync($TargetIPAddress, $TargetPort).GetAwaiter().Getresult() - $Success = $TCPClient.Connected; - } - catch - { - Write-Debug "TCP connect to ($TargetIPAddress : $TargetPort) threw exception: $($_.Exception.Message)" - } - finally - { - $TCPClient.Dispose() - } - - return $Success - } - - ##Description: Modifies the provided object with the correct local connectivty information - ##Input: TestNetConnectionResults object that will be modified - ##Output: Modified TestNetConnectionResult object - function ResolveRoutingandAdapterWMIObjects - { - param ($TestNetConnectionResult) - - try - { - $TestNetConnectionResult.SourceAddress, $TestNetConnectionResult.NetRoute = Find-NetRoute -RemoteIPAddress $TestNetConnectionResult.RemoteAddress -ErrorAction SilentlyContinue - $TestNetConnectionResult.NetAdapter = $TestNetConnectionResult.NetRoute | Get-NetAdapter -IncludeHidden -ErrorAction SilentlyContinue - - $TestNetConnectionResult.InterfaceAlias = $TestNetConnectionResult.NetRoute.InterfaceAlias - $TestNetConnectionResult.InterfaceIndex = $TestNetConnectionResult.NetRoute.InterfaceIndex - $TestNetConnectionResult.InterfaceDescription = $TestNetConnectionResult.NetAdapter.InterfaceDescription - } - catch - { - Write-Debug "ResolveRoutingandAdapterWMIObjects threw exception: $($_.Exception.Message)" - } - return $TestNetConnectionResult - } - - ##Description: Resolves the DNS details for the computername - ##Input: The TestNetConnectionResults object that will be "filled in" with DNS information - ##Output: The modified TestNetConnectionResults object - function ResolveDNSDetails - { - param ($TestNetConnectionResult) - - $TestNetConnectionResult.DNSOnlyRecords = @( Resolve-DnsName $ComputerName -DnsOnly -NoHostsFile -Type A_AAAA -ErrorAction SilentlyContinue | where-object {($_.QueryType -eq "A") -or ($_.QueryType -eq "AAAA") -or ($_.QueryType -eq "PTR")} ) - $TestNetConnectionResult.LLMNRNetbiosRecords = @( Resolve-DnsName $ComputerName -LlmnrNetbiosOnly -NoHostsFile -ErrorAction SilentlyContinue | where-object {($_.QueryType -eq "A") -or ($_.QueryType -eq "AAAA") } ) - $TestNetConnectionResult.BasicNameResolution = @(Resolve-DnsName $ComputerName -ErrorAction SilentlyContinue | where-object {($_.QueryType -eq "A") -or ($_.QueryType -eq "AAAA") -or ($_.QueryType -eq "PTR")} ) - - $TestNetConnectionResult.AllNameResolutionResults = $Return.BasicNameResolution + $Return.DNSOnlyRecords + $Return.LLMNRNetbiosRecords | Sort-Object -Unique -Property Address - return $TestNetConnectionResult - } - - ##Description: Resolves the network security details for the computername - ##Input: The TestNetConnectionResults object that will be "filled in" with network security information - ##Output: Teh modified TestNetConnectionResults object - function ResolveNetworkSecurityDetails - { - param ($TestNetConnectionResult) - - $TestNetConnectionResult.IsAdmin = CheckIfAdmin - $NetworkIsolationInfo = Invoke-CimMethod -Namespace root\standardcimv2 -ClassName MSFT_NetAddressFilter -MethodName QueryIsolationType -Arguments @{InterfaceIndex = [uint32]$TestNetConnectionResult.InterfaceIndex; RemoteAddress = [string]$TestNetConnectionResult.RemoteAddress} -ErrorAction SilentlyContinue - - switch ($NetworkIsolationInfo.IsolationType) - { - 1 {$TestNetConnectionResult.NetworkIsolationContext = "Private Network";} - 0 {$TestNetConnectionResult.NetworkIsolationContext = "Loopback";} - 2 {$TestNetConnectionResult.NetworkIsolationContext = "Internet";} - } - - ##Elevation is required to read IPsec information for the connection. - if ($TestNetConnectionResult.IsAdmin) - { - $TestNetConnectionResult.MatchingIPsecRules = Find-NetIPsecRule -RemoteAddress $TestNetConnectionResult.RemoteAddress -RemotePort $TestNetConnectionResult.RemotePort -Protocol TCP -ErrorAction SilentlyContinue - } - - return $TestNetConnectionResult - } - - ##Description: Diagnose route selection for a destination - ##Input: RouteDiagnosticsResults object that will be filled on with route diagnostics information. - ##Output: None - function DiagnoseRouteSelection - { - param ([NetRouteDiagnostics] $RouteDiagnostics) - - $RouteDiagnostics.RouteDiagnosticsSucceeded = $False - - if ($RouteDiagnostics.Detailed) - { - Write-Progress -Activity "Test-NetConnection :: $($RouteDiagnostics.RemoteAddress)" -Status "RouteDiagnostics" -CurrentOperation "Starting Route Event Tracing" -SecondsRemaining -1 -PercentComplete -1 - - $LogFile = "" - do - { - $LogFile = [System.IO.Path]::GetTempFileName().split(".")[0] + "Test-NetConnection.etl" - } - while (Test-Path -Path $LogFile -ErrorAction SilentlyContinue) - - $TraceResults = netsh trace start tracefile=$LogFile provider=Microsoft-Windows-TCPIP keywords=ut:TcpipRoute report=di perfmerge=no correlation=di - } - - Write-Progress -Activity "Test-NetConnection :: $($RouteDiagnostics.ComputerName)" -Status "RouteDiagnostics" -CurrentOperation "Resolving name" -SecondsRemaining -1 -PercentComplete -1 - - $RouteDiagnostics.ResolvedAddresses = ResolveTargetName -TargetName $RouteDiagnostics.ComputerName - if ($RouteDiagnostics.ResolvedAddresses -eq $null) - { - netsh trace stop | out-null - return - } - - $RouteDiagnostics.RemoteAddress = $RouteDiagnostics.ResolvedAddresses[0] - - if ($RouteDiagnostics.ConstrainSourceAddress -eq $null) - { - if ($RouteDiagnostics.RemoteAddress.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork) - { - $RouteDiagnostics.ConstrainSourceAddress = [System.Net.IPAddress]::Any - } - else - { - $RouteDiagnostics.ConstrainSourceAddress = [System.Net.IPAddress]::IPv6Any - } - } - - if ($RouteDiagnostics.Detailed -and (Test-Path -Path $LogFile)) - { - ##Flush the destination cache to trigger a new route route lookup - if ($RouteDiagnostics.RemoteAddress.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork) - { - netsh int ipv4 delete destinationcache | out-null - } - else - { - netsh int ipv6 delete destinationcache | out-null - } - } - - Write-Progress -Activity "Test-NetConnection :: $($RouteDiagnostics.RemoteAddress)" -Status "RouteDiagnostics" -CurrentOperation "Finding route" -SecondsRemaining -1 -PercentComplete -1 - - try - { - $RouteDiagnostics.SelectedSourceAddress, $RouteDiagnostics.SelectedNetRoute = ` - Find-NetRoute -RemoteIPAddress $RouteDiagnostics.RemoteAddress -LocalIPAddress $RouteDiagnostics.ConstrainSourceAddress -InterfaceIndex $RouteDiagnostics.ConstrainInterfaceIndex -ErrorAction SilentlyContinue - - $RouteDiagnostics.OutgoingNetAdapter = $RouteDiagnostics.SelectedNetRoute | Get-NetAdapter -IncludeHidden -ErrorAction SilentlyContinue - - $RouteDiagnostics.OutgoingInterfaceAlias = $RouteDiagnostics.SelectedNetRoute.InterfaceAlias - $RouteDiagnostics.OutgoingInterfaceIndex = $RouteDiagnostics.SelectedNetRoute.InterfaceIndex - $RouteDiagnostics.OutgoingInterfaceDescription = $RouteDiagnostics.OutgoingNetAdapter.InterfaceDescription - } - catch - { - Write-Debug "Error occured while finding route information. Exception: $($_.Exception.Message)" - netsh trace stop | out-null - return - } - - if ($RouteDiagnostics.Detailed) - { - Write-Progress -Activity "Test-NetConnection :: $($RouteDiagnostics.RemoteAddress)" -Status "RouteDiagnostics" -CurrentOperation "Parsing Route Events" -SecondsRemaining -1 -PercentComplete -1 - - $TraceResults += netsh trace stop - - if (-not (Test-Path -Path $LogFile)) - { - $Message = "Error occured while collection routing events. Error: " + $TraceResults - Write-Warning $Message - return - } - - ##Get route selection events: [IpRouteSelection (task:1378) and IpRouteBlocked (task:1379)] containing the remote IP - $RouteEvents = Get-WinEvent -Path $LogFile -Oldest | Where-Object {(($_.task -eq "1379") -or ($_.task -eq "1378")) -and (($_.Message -ne $null) -and $_.Message.Contains("$($RouteDiagnostics.RemoteAddress) "))} - foreach ($event in $RouteEvents) - { - if ($RouteDiagnostics.RouteSelectionEvents -notcontains $($event.Message)) - { - $RouteDiagnostics.RouteSelectionEvents += "$($event.Message)" - } - } - - ##Get source address selection events: [IpSourceAddressSelection (task:1326)] containing the remote IP - $SrcAddrEvents = Get-WinEvent -Path $LogFile -Oldest | Where-Object {($_.task -eq "1326") -and (($_.Message -ne $null) -and $_.Message.Contains("$($RouteDiagnostics.RemoteAddress) "))} - foreach ($event in $SrcAddrEvents) - { - if ($RouteDiagnostics.SourceAddressSelectionEvents -notcontains $($event.Message)) - { - $RouteDiagnostics.SourceAddressSelectionEvents += "$($event.Message)" - } - } - - ##Get destination address selection events: [IpSortedAddressPairs (task:1327)] containing the resolved IPs - $DstAddrEvents = Get-WinEvent -Path $LogFile -Oldest | Where-Object {($_.task -eq "1327") -and ((($Message = $_.Message) -ne $null) -and (@(($RouteDiagnostics.ResolvedAddresses | ForEach-Object {$_.IPAddressToString}) | where {$Message.Contains("$_)")}) -ne $null))} - foreach ($event in $DstAddrEvents) - { - if ($RouteDiagnostics.DestinationAddressSelectionEvents -notcontains $($event.Message)) - { - $RouteDiagnostics.DestinationAddressSelectionEvents += "$($event.Message)" - } - } - - $RouteDiagnostics.LogFile = $LogFile - } - - $RouteDiagnostics.RouteDiagnosticsSucceeded = $True - - return - } - } - - Process - { - switch ($PSCmdlet.ParameterSetName) - { - - ##Route diagnostics parameterset - "NetRouteDiagnostics" - { - $Return = [NetRouteDiagnostics]::new() - $Return.ComputerName = $ComputerName - - if ($ConstrainSourceAddress -ne "") - { - $Return.ConstrainSourceAddress = $ConstrainSourceAddress - } - - $Return.ConstrainInterfaceIndex = $ConstrainInterface - - $Return.Detailed = ($InformationLevel -eq "Detailed") - if ($Return.Detailed -and (-not (CheckIfAdmin))) { - Write-Warning "'-InformationLevel Detailed' requires elevation (Run as administrator)." - $Return.Detailed = $False - } - - DiagnoseRouteSelection -RouteDiagnostics $Return - - return $Return - } - - ##Test connection parametersets - default - { - ##Construct the return object and fill basic details - $Return = [TestNetConnectionResult]::new() - $Return.ComputerName = $ComputerName - $Return.Detailed = ($InformationLevel -eq "Detailed") - - #### Begin Name Resolution #### - - $Return.ResolvedAddresses = ResolveTargetName -TargetName $ComputerName - if ($Return.ResolvedAddresses -eq $null) - { - if ($InformationLevel -eq "Quiet") - { - return $False - } - - $Return.NameResolutionSucceeded = $False - return $Return - } - - $Return.RemoteAddress = $Return.ResolvedAddresses[0] - $Return.NameResolutionSucceeded = $True - #### End of Name Resolution #### - - #### Begin TCP test #### - - ##Attempt TCP test only if Port or CommonTCPPort is specified - $AttemptTcpTest = ($PSCmdlet.ParameterSetName -eq "CommonTCPPort") -or ($PSCmdlet.ParameterSetName -eq "RemotePort") - if ($AttemptTcpTest) - { - $Return.TcpTestSucceeded = $False - - switch ($CommonTCPPort) - { - "" {$Return.RemotePort = $Port} - "HTTP" {$Return.RemotePort = 80} - "RDP" {$Return.RemotePort = 3389} - "SMB" {$Return.RemotePort = 445} - "WINRM" {$Return.RemotePort = 5985} - } - - ##Try TCP connect using all resolved addresses until it succeeds - $Iter = 0 - while (($Iter -lt $Return.ResolvedAddresses.Count) -and (-not $Return.TcpTestSucceeded)) - { - $Return.TcpTestSucceeded = TestTCP -TargetIPAddress $Return.ResolvedAddresses[$Iter] -TargetPort $Return.RemotePort - ##Output a warning message if the TCP test didn't succeed - if (-not $Return.TcpTestSucceeded) - { - Write-Warning "TCP connect to ($($Return.ResolvedAddresses[$Iter]) : $($Return.RemotePort)) failed" - } - $Iter++ - } - - if ($Return.TcpTestSucceeded) - { - ##Get the remote address that was actually used for connection - $Return.RemoteAddress = $Return.ResolvedAddresses[$Iter - 1] - } - - ##If the user specified "quiet" then we should only return a boolean - if ($InformationLevel -eq "Quiet") - { - return $Return.TcpTestSucceeded - } - } - #### End of TCP test #### - - #### Begin Ping test #### - - ##Attempt Ping test only if TCP test is not attempted or TCP test failed - $AttemptPingTest = (-not $AttemptTcpTest) -or (-not $Return.TcpTestSucceeded) - if ($AttemptPingTest) - { - $Return.PingSucceeded = $False - - ##Try Ping using all resolved addresses until it succeeds - $Iter = 0 - while (($Iter -lt $Return.ResolvedAddresses.Count) -and (-not $Return.PingSucceeded)) - { - $Return.PingReplyDetails = PingTest -TargetIPAddress $Return.ResolvedAddresses[$Iter] - if ($Return.PingReplyDetails -ne $null) - { - $Return.PingSucceeded = ($Return.PingReplyDetails.Status -eq [System.Net.NetworkInformation.IPStatus]::Success) - } - - ##Output a warning message if Ping didn't succeed - if (-not $Return.PingSucceeded) - { - $WarningString = "Ping to $($Return.ResolvedAddresses[$Iter]) failed" - if ($Return.PingReplyDetails -ne $null) - { - $WarningString += " with status: $($Return.PingReplyDetails.Status)" - } - Write-Warning $WarningString - } - $Iter++ - } - - if ($Return.PingSucceeded) - { - ##Get the remote address that was actually used for Ping - $Return.RemoteAddress = $Return.ResolvedAddresses[$Iter - 1] - } - - ##If the user specified "quiet" then we should only return a boolean - if ($InformationLevel -eq "Quiet") - { - return $Return.PingSucceeded - } - } - #### End of Ping test #### - - #### Begin TraceRoute #### - - ##TraceRoute, only occurs if switched by the user - if ($TraceRoute -eq $True) - { - $Return.TraceRoute = TraceRoute -TargetIPAddress $Return.RemoteAddress -Hops $Hops - } - #### End of TraceRoute #### - - $Return = ResolveDNSDetails -TestNetConnectionResult $Return - $Return = ResolveNetworkSecurityDetails -TestNetConnectionResult $Return - $Return = ResolveRoutingandAdapterWMIObjects -TestNetConnectionResult $Return - - return $Return - } - } - } -} - -##Export cmdlet and alias to module -New-Alias TNC Test-NetConnection -Export-ModuleMember -Alias TNC -Function Test-NetConnection diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.cdxml b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.cdxml deleted file mode 100644 index f829844..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.cdxml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - 1.0 - DAConnectionStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.format.ps1xml deleted file mode 100644 index 0e43865..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.format.ps1xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - MSFT_DAConnectionStatus - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DAConnectionStatus - Microsoft.Management.Infrastructure.CimInstance#MSFT_DAConnectionStatus - - - - - - - Status - - - SubStatus - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.types.ps1xml deleted file mode 100644 index 2e20806..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_DAConnectionStatus.types.ps1xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DAConnectionStatus - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.DAConnectionStatus.Status]($this.PSBase.CimInstanceProperties['Status'].Value) - - - $this.PSBase.CimInstanceProperties['Status'].Value = [System.UInt32]$_ - - - - Substatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.DAConnectionStatus.Substatus]($this.PSBase.CimInstanceProperties['Substatus'].Value) - - - $this.PSBase.CimInstanceProperties['Substatus'].Value = [System.UInt32]$_ - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.cdxml deleted file mode 100644 index 520379c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.cdxml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - 1.0 - NCSIPolicyConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.format.ps1xml deleted file mode 100644 index 13867d6..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/MSFT_NCSIPolicyConfiguration.format.ps1xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - MSFT_NCSIPolicyConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NCSIPolicyConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NCSIPolicyConfiguration - - - - - - - Description - - - CorporateDNSProbeHostAddress - - - CorporateDNSProbeHostName - - - CorporateSitePrefixList - - - CorporateWebsiteProbeURL - - - DomainLocationDeterminationURL - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/NetworkConnectivityStatus.psd1 b/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/NetworkConnectivityStatus.psd1 deleted file mode 100644 index 986ebb5..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkConnectivityStatus/NetworkConnectivityStatus.psd1 +++ /dev/null @@ -1,17 +0,0 @@ - -@{ - ModuleVersion = '1.0.0.0' - NestedModules = @("MSFT_DAConnectionStatus.cdxml", "MSFT_NCSIPolicyConfiguration.cdxml") - FormatsToProcess = @("MSFT_DAConnectionStatus.format.ps1xml", "MSFT_NCSIPolicyConfiguration.format.ps1xml") - TypesToProcess = @("MSFT_DAConnectionStatus.types.ps1xml") - HelpInfoUri = "http://go.microsoft.com/fwlink/?LinkId=285557" - GUID = '{6C9A449B-B0C6-4386-B139-EE0A55638803}' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - PowerShellVersion = '5.1' - Copyright = '© Microsoft Corporation. All rights reserved.' - FunctionsToExport = @("Get-DAConnectionStatus", "Get-NCSIPolicyConfiguration", "Reset-NCSIPolicyConfiguration", "Set-NCSIPolicyConfiguration") - CmdletsToExport = @() - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/CmdletHelpers.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/CmdletHelpers.psm1 deleted file mode 100644 index 4696e57..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/CmdletHelpers.psm1 +++ /dev/null @@ -1,379 +0,0 @@ -########################################################################### -# # -# Module Name: CmdletHelpers.psm1 # -# # -# Description: Wrappers for common functions used by all cmdlets. # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -function CmdletShouldProcess() { -param( - [Parameter(Mandatory=$true, Position=0)] - [System.Management.Automation.PSCmdlet] $PSCmdlet, - - [Parameter(Mandatory=$true, Position=1)] - [object] $Object - ) - - $PSCmdlet.ShouldProcess($Object) -} - -function Get-NetworkSwitchRegisteredProfileFromNamespace() { -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession]$cimSession, - - [Parameter(Mandatory=$true)] - [string] $Namespace - ) - - Get-CimInstance -classname CIM_RegisteredProfile -Namespace $Namespace -CimSession $cimSession -ErrorAction Ignore | ? {$_.RegisteredName -ieq 'Ethernet Switch Profile' -and $_.RegisteredOrganization -ieq '1' -and ($_.RegisteredVersion).StartsWith("1.")} -} - -# cmdlets should use this, since it will be mocked in unit tests -function Get-NetworkSwitchImplementationNamespace() { -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession - ) - - Get-NetworkSwitchImplementationNamespace_Internal -CimSession $CimSession -} - -function New-LocalCimInstance() { -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimClass] $CimClass, - - [Parameter(Mandatory=$true)] - [HashTable] $Property - ) - - New-CimInstance -ClientOnly -CimClass $CimClass -Property $Property -} - - -# fallback localization data in case it fails to load properly -data networkSwitchLocalizedData -{ - # culture="en-US" - ConvertFrom-StringData @' - ErrorMessageNoTarget={0} encountered an error. Ensure that you are using a valid CIM session and that the Ethernet Switch Profile is correctly registered. If you are passing input objects, ensure these are valid instances of the appropriate type. See the Exception member of this error record for more details on the underlying issue. - ErrorMessageTarget={0} encountered an error while processing {1}. Ensure that you are using a valid CIM session and that the Ethernet Switch Profile is correctly registered. If you are passing input objects, ensure these are valid instances of the appropriate type. See the Exception member of this error record for more details on the underlying issue. - WarningMessageNoTarget={0} encountered a warning: {1}. - WarningMessageTarget={0} encountered a warning while processing {1}: {2}. - UnknownError=An unknown error has occured - error code {0}. - NoValidAssociatedSwitch=The registered Ethernet Switch Profile is not associated with a conforming switch. Please register your switch as conforming to the Ethernet Switch Profile. - NoValidAssociatedNamespace=The switch registered as conforming to the Ethernet Switch Profile is not associated with a valid namespace. Please verify your switch implementation and registration. - NoValidRegisteredProfile=The Ethernet Switch Profile was not registered in root/interop, interop, /root/interop or /interop. Please register the Ethernet Switch Profile in one of these namespaces. - NoMatchingInstance=Did not find any instances matching search criteria: {0} = {1}. -'@ -} - -# load localized strings for the locale -Import-LocalizedData networkSwitchLocalizedData -filename NetworkSwitchManager.Resource.psd1 - -$script:nsLocalizedData = $networkSwitchLocalizedData - -function NetworkSwitchExceptionHandler( - [System.Collections.ArrayList] $ErrorObjects, - [System.Collections.ArrayList] $WarningObjects, - [string] $CmdletName, - [object] $TargetObject) { - - foreach ($ErrorObject in $ErrorObjects) { - - if ($TargetObject) { - $torExceptionMessage = $script:nsLocalizedData.ErrorMessageTarget -f $CmdletName, $TargetObject - } - else { - $torExceptionMessage = $script:nsLocalizedData.ErrorMessageNoTarget -f $CmdletName - } - - $baseErrorId = $ErrorObject.FullyQualifiedErrorId - $errorId = "NetworkSwitchManager : $CmdletName : $baseErrorId" - - $torException = New-Object -TypeName System.Exception -ArgumentList @($torExceptionMessage, $ErrorObject.Exception) - - $torErrorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord ` - -ArgumentList @($TorException, ` - $errorId, ` - [System.Management.Automation.ErrorCategory] "NotSpecified", ` - $TargetObject) - - Write-Error -ErrorRecord $torErrorRecord - } - - foreach ($WarningObject in $WarningObjects) { - - if ($TargetObject) { - $warningMessage = $script:nsLocalizedData.WarningMessageTarget -f $CmdletName, $TargetObject, $WarningObject.Message - } - else { - $warningMessage = $script:nsLocalizedData.WarningMessageNoTarget -f $CmdletName, $WarningObject.Message - } - - Write-Warning $warningMessage - - } -} - -$global:NETWORK_SWITCH_UNKNOWN_ERROR = 0 -$global:NETWORK_SWITCH_NO_VALID_ASSOCIATED_SWITCH = 1 -$global:NETWORK_SWITCH_NO_VALID_ASSOCIATED_NAMESPACE = 2 -$global:NETWORK_SWITCH_NO_VALID_REGISTERED_PROFILE = 3 -$global:NETWORK_SWITCH_NO_MATCHING_INSTANCE = 4 - -$script:nsCustomErrorMessages = @( - $script:nsLocalizedData.UnknownError, - $script:nsLocalizedData.NoValidAssociatedSwitch, - $script:nsLocalizedData.NoValidAssociatedNamespace, - $script:nsLocalizedData.NoValidRegisteredProfile, - $script:nsLocalizedData.NoMatchingInstance - ) - -function NetworkSwitchErrorHandler( - [int] $ErrorCode, - [string] $CmdletName, - [object] $TargetObject, - [object] $ExtraData1, - [object] $ExtraData2) { - - $baseMessage = $script:nsCustomErrorMessages[$ErrorCode] - - if (($ErrorCode -ne 0) -and $baseMessage) { - $message = $baseMessage -f $ExtraData1, $ExtraData2 - } - else { - $message = $script:nsCustomErrorMessages[$global:NETWORK_SWITCH_UNKNOWN_ERROR] -f $ErrorCode - } - - $nsErrorId = "Error_$ErrorCode" - $nsException = New-Object -TypeName System.Exception -ArgumentList @($message) - $nsErrorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord ` - -ArgumentList @($nsException, ` - $nsErrorId, ` - [System.Management.Automation.ErrorCategory] "NotSpecified", ` - $TargetObject) - - NetworkSwitchExceptionHandler -ErrorObjects @($nsErrorRecord) ` - -CmdletName $CmdletName ` - -TargetObject $TargetObject -} - - - -function Get-NetworkSwitchService( - [string] $Namespace, - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [string] $CmdletName) { - - $switchService = Get-CimInstance -ClassName MSFT_SwitchService ` - -Namespace $Namespace ` - -CimSession $CimSession ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue ` - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $cmdletName ` - -TargetObject $port - - $switchService -} - - -function Get-NetworkSwitchAssociatedInstance( - [Microsoft.Management.Infrastructure.CimInstance] $InputObject, - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [string] $CmdletName, - [string] $ResultClassName - ) { - - $instances = Get-CimAssociatedInstance -InputObject $InputObject ` - -ResultClassName $ResultClassName ` - -CimSession $CimSession ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $cmdletName ` - -TargetObject $InputObject - $instances -} - -function Get-NetworkSwitchClass( - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [string] $ClassName, - [string] $Namespace, - [string] $CmdletName) { - - $classDef = Get-CimClass -Namespace $Namespace ` - -ClassName $ClassName ` - -CimSession $CimSession ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $cmdletName ` - -TargetObject $InputObject - - $classDef -} - -function Set-NetworkSwitchInstance( - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [Microsoft.Management.Infrastructure.CimInstance] $InputObject, - [HashTable] $Property, - [string] $CmdletName) { - - Set-CimInstance -InputObject $InputObject ` - -Property $Property ` - -CimSession $CimSession ` - -Confirm:$false ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue ` - 1>$null - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $cmdletName ` - -TargetObject $InputObject -} - -function Get-NetworkSwitchInstanceNoFilter( - [string] $Namespace, - [string] $ClassName, - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [string] $CmdletName) { - - $insts = Get-CimInstance -NameSpace $Namespace ` - -ClassName $ClassName ` - -CimSession $CimSession ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $CmdletName - $insts -} - -function Filter-NetworkSwitchInstance( - [Microsoft.Management.Infrastructure.CimInstance[]] $Instances, - [string] $Property, - [object] $Value, - [switch] $UseLike, - [switch] $UseContains, - [switch] $AssertNonEmpty, - [string] $CmdletName) { - - $insts = $null - if ($Instances) { - if ($UseLike) { - $insts = $Instances | where {$_.CimInstanceProperties[$Property].Value -like $Value} - } - elseif ($UseContains) { - $insts = $Instances | where {$Value -contains $_.CimInstanceProperties[$Property].Value} - } - else { - $insts = $Instances | where {$_.CimInstanceProperties[$Property].Value -eq $Value} - } - } - - if ($AssertNonEmpty -and (-not $insts)) { - NetworkSwitchErrorHandler -ErrorCode $global:NETWORK_SWITCH_NO_MATCHING_INSTANCE ` - -CmdletName $CmdletName ` - -ExtraData1 $Property ` - -ExtraData2 $Value - } - - $insts -} - -function Invoke-NetworkSwitchMethod( - [Microsoft.Management.Infrastructure.CimInstance] $Instance, - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - [string] $MethodName, - [HashTable] $Arguments, - [string] $CmdletName) { - - Invoke-CimMethod -InputObject $Instance ` - -MethodName $MethodName ` - -Arguments $Arguments ` - -CimSession $CimSession ` - -Confirm:$false ` - -ErrorVariable cimError ` - -WarningVariable cimWarning ` - -ErrorAction SilentlyContinue ` - -WarningAction SilentlyContinue ` - 1>$null - - NetworkSwitchExceptionHandler -ErrorObject $cimError ` - -WarningObject $cimWarning ` - -CmdletName $cmdletName ` - -TargetObject $Instance -} - -#cmdlets should never use this; it will be unit-tested. -function Get-NetworkSwitchImplementationNamespace_Internal() { -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession]$cimSession - ) - - $cmdletName = "Get-NetworkSwitchImplementationNamespace" - $ethernetSwitchProfile = Get-NetworkSwitchRegisteredProfileFromNamespace -CimSession $CimSession -Namespace root/interop - - if (-not $ethernetSwitchProfile) { - $ethernetSwitchProfile = Get-NetworkSwitchRegisteredProfileFromNamespace -CimSession $CimSession -Namespace interop - } - - if (-not $ethernetSwitchProfile) { - $ethernetSwitchProfile = Get-NetworkSwitchRegisteredProfileFromNamespace -CimSession $CimSession -Namespace /root/interop - } - - if (-not $ethernetSwitchProfile) { - $ethernetSwitchProfile = Get-NetworkSwitchRegisteredProfileFromNamespace -CimSession $CimSession -Namespace /interop - } - - if (-not $ethernetSwitchProfile) { - NetworkSwitchErrorHandler -ErrorCode $global:NETWORK_SWITCH_NO_VALID_REGISTERED_PROFILE ` - -CmdletName $cmdletName - return - } - - $computerSystem = Get-CimAssociatedInstance -InputObject $ethernetSwitchProfile -ResultClassName CIM_ComputerSystem -CimSession $CimSession - - if(-not $computerSystem) { - NetworkSwitchErrorHandler -ErrorCode $global:NETWORK_SWITCH_NO_VALID_ASSOCIATED_SWITCH ` - -CmdletName $cmdletName - return - } - - $namespace = $computerSystem.CimSystemProperties.Namespace - - if(-not $namespace) { - NetworkSwitchErrorHandler -ErrorCode $global:NETWORK_SWITCH_NO_VALID_ASSOCIATED_NAMESPACE ` - -CmdletName $cmdletName - return - } - - $namespace -} - -Export-ModuleMember -Function * \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchConfiguration.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchConfiguration.psm1 deleted file mode 100644 index defbe0d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchConfiguration.psm1 +++ /dev/null @@ -1,71 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchConfiguration.psm1 # -# # -# Description: Cmdlets for saving and restoring the switch state # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -import-module "$PSScriptRoot\CmdletHelpers.psm1" -Force -DisableNameChecking - -function Restore-NetworkSwitchConfiguration() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession - ) - - Begin { - $cmdletName = "Restore-NetworkSwitchConfiguration" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $ss = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $cimSession ` - -CmdletName $cmdletName - - if ($(CmdletShouldProcess $PSCmdlet $ss)) { - Invoke-NetworkSwitchMethod -Instance $ss[0] ` - -CimSession $CimSession ` - -MethodName "CopyStartupToCurrent" ` - -CmdletName $cmdletName - } - } - - End {} -} - -function Save-NetworkSwitchConfiguration() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession - ) - - Begin { - $cmdletName = "Save-NetworkSwitchConfiguration" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $ss = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $cimSession ` - -CmdletName $cmdletName - - if ($(CmdletShouldProcess $PSCmdlet $ss)) { - Invoke-NetworkSwitchMethod -Instance $ss[0] ` - -CimSession $CimSession ` - -MethodName "CopyCurrentToStartup" ` - -CmdletName $cmdletName - } - } - - End {} -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchEthernetPort.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchEthernetPort.psm1 deleted file mode 100644 index abdc6a8..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchEthernetPort.psm1 +++ /dev/null @@ -1,573 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchEthernetPort.psm1 # -# # -# Description: Cmdlets to manage Ethernet ports # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -import-module "$PSScriptRoot\CmdletHelpers.psm1" -Force -DisableNameChecking - -function Disable-NetworkSwitchEthernetPort() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="DeviceIdSet")] - [string] $DeviceID, - - [Parameter(Mandatory=$true, ParameterSetName="PortNumberSet")] - [int] $PortNumber, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Disable-NetworkSwitchEthernetPort" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - } - else { - - $ports = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_EthernetPort ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($DeviceID) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property DeviceId ` - -Value $DeviceId ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - elseif ($PortNumber) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property PortNumber ` - -Value $PortNumber ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - Invoke-NetworkSwitchMethod -Instance $port ` - -CimSession $CimSession ` - -MethodName "RequestStateChange" ` - -Arguments @{RequestedState = 3} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Enable-NetworkSwitchEthernetPort() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="DeviceIdSet")] - [string] $DeviceID, - - [Parameter(Mandatory=$true, ParameterSetName="PortNumberSet")] - [int] $PortNumber, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Enable-NetworkSwitchEthernetPort" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - } - else { - $ports = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_EthernetPort ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($DeviceID) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property DeviceId ` - -Value $DeviceId ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - elseif ($PortNumber) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property PortNumber ` - -Value $PortNumber ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - Invoke-NetworkSwitchMethod -Instance $port ` - -CimSession $CimSession ` - -MethodName "RequestStateChange" ` - -Arguments @{RequestedState = 2} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Get-NetworkSwitchEthernetPort() { -[CmdletBinding(DefaultParameterSetName="DeviceIDSet")] -[OutputType([Microsoft.Management.Infrastructure.CimInstance])] -[OutputType('Microsoft.Management.Infrastructure.CimInstance#CIM_EthernetPort')] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false, ParameterSetName="DeviceIDSet")] - [string] $DeviceId, - - [Parameter(Mandatory=$true, ParameterSetName="FullDuplexEnabledSet")] - [switch] $FullDuplexEnabled, - - [Parameter(Mandatory=$true, ParameterSetName="FullDuplexDisabledSet")] - [switch] $FullDuplexDisabled, - - [Parameter(Mandatory=$true, ParameterSetName="PortNumberSet")] - [int] $PortNumber - ) - - Begin { - $cmdletName = "Get-NetworkSwitchEthernetPort" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $ports = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_EthernetPort ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($DeviceId) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property DeviceId ` - -Value $DeviceId ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - elseif ($FullDuplexEnabled) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property FullDuplex ` - -Value $true ` - -CmdletName $cmdletName ` - } - elseif ($FullDuplexDisabled) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property FullDuplex ` - -Value $false ` - -CmdletName $cmdletName ` - } - elseif ($PortNumber) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property PortNumber ` - -Value $PortNumber ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - - foreach ($port in $ports) { - $lanep = Get-NetworkSwitchAssociatedInstance -InputObject $port ` - -ResultClassName Cim_LanEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($lanep) { - $ippe = @(Get-NetworkSwitchAssociatedInstance -InputObject $lanep ` - -ResultClassName CIM_IPProtocolEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName) - } - - if ($lanep) { - $vlanep = Get-NetworkSwitchAssociatedInstance -InputObject $lanep ` - -ResultClassName Cim_VLanEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - - if ($vlanep) { - $vlanepsd = Get-NetworkSwitchAssociatedInstance -InputObject $vlanep ` - -ResultClassName Cim_VLanEndpointSettingData ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - - $port.PSObject.Members.Remove("IPAddress") - Add-Member -InputObject $port ` - -MemberType NoteProperty ` - -Name IPAddress ` - -Value $ippe - - $port.PSObject.Members.Remove("PortMode") - Add-Member -InputObject $port ` - -MemberType NoteProperty ` - -Name PortMode ` - -Value $vlanep.DesiredEndpointMode - - $port.PSObject.Members.Remove("AccessVLAN") - Add-Member -InputObject $port ` - -MemberType NoteProperty ` - -Name AccessVLAN ` - -Value $vlanepsd.AccessVLAN - - $port.PSObject.Members.Remove("TrunkedVLANList") - Add-Member -InputObject $port ` - -MemberType NoteProperty ` - -Name TrunkedVLANList ` - -Value $vlanepsd.TrunkedVLANList - - $port - } - } - - End {} -} - -function Remove-NetworkSwitchEthernetPortIPAddress() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="PortNumberSet")] - [int] $PortNumber, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Remove-NetworkSwitchEthernetPortIPAddress" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - } - else { - $ports = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_EthernetPort ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($PortNumber) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property PortNumber ` - -Value $PortNumber ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $cimSession ` - -CmdletName $cmdletName - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - $lanEndpoints = Get-NetworkSwitchAssociatedInstance -InputObject $port ` - -CimSession $CimSession ` - -ResultClassName CIM_LANEndpoint ` - -CmdletName $cmdletName - foreach ($lep in $lanEndpoints) { - $protocolEndpoints = Get-NetworkSwitchAssociatedInstance -InputObject $lep ` - -CimSession $CimSession ` - -ResultClassName CIM_IPProtocolEndpoint ` - -CmdletName $cmdletName - foreach($pep in $protocolEndpoints) { - - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "RemoveProtocolEndpoint" ` - -Arguments @{Endpoint = $pep} ` - -CmdletName $cmdletName - } - } - } - } - } - - End {} -} - -function Set-NetworkSwitchEthernetPortIPAddress() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true)] - [string] $IpAddress, - - [Parameter(Mandatory=$true)] - [string] $SubnetAddress, - - [Parameter(Mandatory=$true, ParameterSetName="PortNumberSet")] - [int] $PortNumber, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Set-NetworkSwitchEthernetPortIPAddress" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - } - else { - $ports = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_EthernetPort ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($PortNumber) { - $ports = Filter-NetworkSwitchInstance -Instances $ports ` - -Property PortNumber ` - -Value $PortNumber ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $cimSession ` - -CmdletName $cmdletName - - $ippeCls = Get-NetworkSwitchClass -Namespace $nsNamespace ` - -ClassName CIM_IPProtocolEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $protocolEndpoint = New-LocalCimInstance -CimClass $ippeCls ` - -Property @{IPV4Address = $ipAddress; ` - SubnetMask = $SubnetAddress} - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "AddProtocolEndpoint" ` - -Arguments @{TargetInterface = $port; ` - ProtocolEndpoint = [ciminstance[]]@($protocolEndpoint)} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Set-NetworkSwitchPortMode() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="AccessSet")] - [switch] $AccessMode, - - [Parameter(Mandatory=$true, ParameterSetName="AccessSet")] - [int] $VlanID, - - [Parameter(Mandatory=$true, ParameterSetName="RouteSet")] - [switch] $RouteMode, - - [Parameter(Mandatory=$true, ParameterSetName="RouteSet")] - [string] $IpAddress, - - [Parameter(Mandatory=$true, ParameterSetName="RouteSet")] - [string] $SubnetAddress, - - [Parameter(Mandatory=$true, ParameterSetName="TrunkSet")] - [switch] $TrunkMode, - - [Parameter(Mandatory=$true, ParameterSetName="TrunkSet")] - [uint16[]] $VlanIDs, - - [Parameter(Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Set-NetworkSwitchPortMode" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - - if ($RouteMode) { - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $cimSession ` - -CmdletName $cmdletName - - $ippeCls = Get-NetworkSwitchClass -Namespace $nsNamespace ` - -ClassName CIM_IPProtocolEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $protocolEndpoint = New-LocalCimInstance -CimClass $ippeCls ` - -Property @{IPV4Address = $ipAddress; ` - SubnetMask = $SubnetAddress} - } - - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - if ($RouteMode) { - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "AddProtocolEndpoint" ` - -Arguments @{TargetInterface = $port; ` - ProtocolEndpoint = [ciminstance[]]@($protocolEndpoint)} ` - -CmdletName $cmdletName - } - else { - $lanep = Get-NetworkSwitchAssociatedInstance -InputObject $port ` - -ResultClassName Cim_LanEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $vlanep = Get-NetworkSwitchAssociatedInstance -InputObject $lanep ` - -ResultClassName Cim_VLanEndpoint ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $vlanepsd = Get-NetworkSwitchAssociatedInstance -InputObject $vlanep ` - -ResultClassName Cim_VLanEndpointSettingData ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($AccessMode) { - $vlanepProp = @{DesiredEndpointMode = 2} - $vlanepsdProp = @{AccessVlan = $VlanID} - } - elseif ($TrunkMode) { - $vlanepProp = @{DesiredEndpointMode = 5} - $vlanepsdProp = @{TrunkedVlanList = $VlanIDs} - } - - Set-NetworkSwitchInstance -InputObject $vlanep ` - -Property $vlanepProp ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - Set-NetworkSwitchInstance -InputObject $vlanepsd ` - -Property $vlanepsdProp ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - } - } - } - - End {} -} - -function Set-NetworkSwitchPortProperty() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false)] - [System.Collections.HashTable] $Property, - - [Parameter(Mandatory=$true, ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Set-NetworkSwitchPortProperty" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($input) { - $ports = $input[0] - } - else { - $ports = $InputObject - } - - foreach ($port in $ports) { - if ($(CmdletShouldProcess $PSCmdlet $port)) { - Set-NetworkSwitchInstance -InputObject $port ` - -CimSession $CimSession ` - -Property $Property ` - -CmdletName $cmdletName - } - } - } - - End {} -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchFeature.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchFeature.psm1 deleted file mode 100644 index 3e8bb14..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchFeature.psm1 +++ /dev/null @@ -1,221 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchFeature.psm1 # -# # -# Description: Cmdlets to manage features # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -import-module "$PSScriptRoot\CmdletHelpers.psm1" -Force -DisableNameChecking - -function Disable-NetworkSwitchFeature() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="FeatureNameSet")] - [int] $FeatureName, - - [Parameter(Mandatory=$true, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true,ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Disable-NetworkSwitchFeature" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $features = $input[0] - } - else { - $features = $InputObject - } - } - else { - $features = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName MSFT_Feature ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($FeatureName) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property FeatureName ` - -Value $FeatureName ` - -CmdletName $cmdletName - } - elseif ($Name) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property Name ` - -Value $Name ` - -CmdletName $cmdletName ` - -UseLike - } - elseif ($InstanceId) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property InstanceId ` - -Value $InstanceId ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - foreach ($feature in $features) { - if ($(CmdletShouldProcess $PSCmdlet $feature)) { - Set-NetworkSwitchInstance -InputObject $feature ` - -Property @{IsEnabled = $false} ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Enable-NetworkSwitchFeature() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true,ParameterSetName="FeatureNameSet")] - [int] $FeatureName, - - [Parameter(Mandatory=$true,ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true,ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Enable-NetworkSwitchFeature" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $features = $input[0] - } - else { - $features = $InputObject - } - } - else { - $features = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName MSFT_Feature ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($FeatureName) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property FeatureName ` - -Value $FeatureName ` - -CmdletName $cmdletName - } - elseif ($Name) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property Name ` - -Value $Name ` - -CmdletName $cmdletName ` - -UseLike - } - elseif ($InstanceId) { - $features = Filter-NetworkSwitchInstance -Instances $features ` - -Property InstanceId ` - -Value $InstanceId ` - -CmdletName $cmdletName ` - -AssertNonEmpty - } - } - - foreach ($feature in $features) { - if ($(CmdletShouldProcess $PSCmdlet $feature)) { - Set-NetworkSwitchInstance -InputObject $feature ` - -Property @{IsEnabled = $true} ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Get-NetworkSwitchFeature() { -[CmdletBinding(DefaultParameterSetName="NameSet")] -[OutputType([Microsoft.Management.Infrastructure.CimInstance])] -[OutputType('Microsoft.Management.Infrastructure.CimInstance#MSFT_Feature')] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true, ParameterSetName="EnabledSet")] - [switch] $Enabled, - - [Parameter(Mandatory=$true, ParameterSetName="DisabledSet")] - [switch] $Disabled - ) - - Begin { - $cmdletName = "Get-NetworkSwitchFeature" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $featureList = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName MSFT_Feature ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($Name) { - $featureList = Filter-NetworkSwitchInstance -Instances $featureList ` - -Property Name ` - -Value $Name ` - -CmdletName $cmdletName ` - -UseLike - } - elseif ($Enabled) { - $featureList = Filter-NetworkSwitchInstance -Instances $featureList ` - -Property IsEnabled ` - -Value $true ` - -CmdletName $cmdletName - } - elseif ($Disabled) { - $featureList = Filter-NetworkSwitchInstance -Instances $featureList ` - -Property IsEnabled ` - -Value $false ` - -CmdletName $cmdletName - } - - $featureList - } - - End {} -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchGlobalSettingData.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchGlobalSettingData.psm1 deleted file mode 100644 index 06247df..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchGlobalSettingData.psm1 +++ /dev/null @@ -1,37 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchGlobalSettingData.psm1 # -# # -# Description: Cmdlet to access the switch global settings data # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -import-module "$PSScriptRoot\CmdletHelpers.psm1" -Force -DisableNameChecking - -function Get-NetworkSwitchGlobalData() { -[CmdletBinding()] -[OutputType([Microsoft.Management.Infrastructure.CimInstance])] -[OutputType('Microsoft.Management.Infrastructure.CimInstance#MSFT_GlobalEthernetSwitchSettingData')] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession - ) - - Begin { - $cmdletName = "Get-NetworkSwitchGlobalData" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName MSFT_GlobalEthernetSwitchSettingData ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - - End {} -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.format.ps1xml deleted file mode 100644 index 62e915c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.format.ps1xml +++ /dev/null @@ -1,391 +0,0 @@ - - - - - GlobalSwitchSettingData_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_GlobalEthernetSwitchSettingData - - - - - - 20 - - - - 20 - - - - 20 - - - - 20 - - - - 15 - - - - 20 - - - - - - - Caption - - - Description - - - Name - - - Banner - - - BannerIsEnabled - - - InstanceID - - - - - - - - Feature_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Feature - - - - - - 20 - - - - 20 - - - - 20 - - - - - - - Name - - - IsEnabled - - - InstanceID - - - - - - - - NetworkVLAN_TableView - - Microsoft.Management.Infrastructure.CimInstance#CIM_NetworkVLAN - - - - - - 20 - - - - 20 - - - - 20 - - - - 20 - - - - 10 - - - - - - - Caption - - - Description - - - Name - - - InstanceID - - - VlanID - - - - - - - - EthernetPort_TableView - - Microsoft.Management.Infrastructure.CimInstance#CIM_EthernetPort - - - - - - 20 - - - - 10 - - - - 20 - - - - 10 - - - - 10 - - - - 10 - - - - 15 - - - - - - - Name - - - PortNumber - - - DeviceID - - - FullDuplex - - - AutoSense - - - PortType - - - MaxDataSize - - - - - - - - IPProtocolEndpoint_TableView - - Microsoft.Management.Infrastructure.CimInstance#CIM_IPProtocolEndpoint - - - - - - 20 - - - - 20 - - - - - - - SubnetAddress - - - IPAddress - - - - - - - - GlobalSwitchSettingData_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_GlobalEthernetSwitchSettingData - - - - - - - Caption - - - Description - - - Name - - - Banner - - - BannerIsEnabled - - - InstanceID - - - - - - - - Feature_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Feature - - - - - - - Name - - - IsEnabled - - - InstanceID - - - - - - - - NetworkVLAN_ListView - - Microsoft.Management.Infrastructure.CimInstance#CIM_NetworkVLAN - - - - - - - Caption - - - Description - - - Name - - - InstanceID - - - VlanID - - - - - - - - EthernetPort_ListView - - Microsoft.Management.Infrastructure.CimInstance#CIM_EthernetPort - - - - - - - Name - - - PortNumber - - - DeviceID - - - FullDuplex - - - AutoSense - - - PortType - - - MaxDataSize - - - - - - - - IPProtocolEndpoint_ListView - - Microsoft.Management.Infrastructure.CimInstance#CIM_IPProtocolEndpoint - - - - - - - SubnetAddress - - - IPAddress - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.psd1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.psd1 deleted file mode 100644 index 9d1b649..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.psd1 +++ /dev/null @@ -1,50 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchManager.psd1 # -# # -# Description: Network switch manager module manifest file # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### -@{ - GUID = '53B60D16-69AD-4453-BF41-83EFA5AC35B8' - Author = "Microsoft Corporation" - CompanyName = "Microsoft" - Copyright = "© Microsoft. All rights reserved." - HelpInfoUri = "http://go.microsoft.com/fwlink/?linkid=216365" - ModuleVersion = '1.0.0.0' - NestedModules=@("NetworkSwitchConfiguration.psm1", "NetworkSwitchEthernetPort.psm1", "NetworkSwitchFeature.psm1", "NetworkSwitchGlobalSettingData.psm1", "NetworkSwitchVlan.psm1") - AliasesToExport = @() - - FunctionsToExport = @( - 'Disable-NetworkSwitchEthernetPort', - 'Enable-NetworkSwitchEthernetPort', - 'Get-NetworkSwitchEthernetPort', - 'Remove-NetworkSwitchEthernetPortIPAddress', - 'Set-NetworkSwitchEthernetPortIPAddress', - 'Set-NetworkSwitchPortMode', - 'Set-NetworkSwitchPortProperty', - - 'Disable-NetworkSwitchFeature', - 'Enable-NetworkSwitchFeature', - 'Get-NetworkSwitchFeature', - - 'Disable-NetworkSwitchVlan', - 'Enable-NetworkSwitchVlan', - 'Get-NetworkSwitchVlan', - 'New-NetworkSwitchVlan', - 'Remove-NetworkSwitchVlan', - 'Set-NetworkSwitchVlanProperty', - - 'Get-NetworkSwitchGlobalData', - - 'Save-NetworkSwitchConfiguration', - 'Restore-NetworkSwitchConfiguration' - ) - - PowerShellVersion = '5.1' - TypesToProcess = @('NetworkSwitchManager.types.ps1xml') - FormatsToProcess = @('NetworkSwitchManager.format.ps1xml') - CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.types.ps1xml deleted file mode 100644 index da2686c..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchManager.types.ps1xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_GlobalEthernetSwitchSettingData - - - Name - ElementName - - - - - Microsoft.Management.Infrastructure.CimInstance#CIM_NetworkVLAN - - - Name - ElementName - - - - - Microsoft.Management.Infrastructure.CimInstance#CIM_IPProtocolEndpoint - - - IPAddress - IPv4Address - - - SubnetAddress - SubnetMask - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchVlan.psm1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchVlan.psm1 deleted file mode 100644 index fd67c04..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/NetworkSwitchVlan.psm1 +++ /dev/null @@ -1,430 +0,0 @@ -########################################################################### -# # -# Module Name: NetworkSwitchVlan.psm1 # -# # -# Description: Cmdlets for managing VLANs # -# # -# Copyright (c) Microsoft Corporation. All rights reserved. # -# # -########################################################################### - -import-module "$PSScriptRoot\CmdletHelpers.psm1" -Force -DisableNameChecking - -function Disable-NetworkSwitchVlan() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$true, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true, ParameterSetName="VlanIdSet")] - [int] $VlanID - ) - - Begin { - $cmdletName = "Disable-NetworkSwitchVlan" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $vlans = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_NetworkVLAN ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - if ($InstanceId) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property InstanceId ` - -Value $InstanceId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($VlanID) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property VlanId ` - -Value $VlanId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($Name) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property ElementName ` - -Value $Name ` - -UseLike ` - -CmdletName $cmdletName - } - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $CimSession ` - -CmdletName $cmdletName - foreach ($vlan in $vlans) { - if ($(CmdletShouldProcess $PSCmdlet $vlan)) { - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "DisableVLAN" ` - -Arguments @{VLAN = [ciminstance[]]@($vlan)} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Enable-NetworkSwitchVlan() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$true, ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$true, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true, ParameterSetName="VlanIdSet")] - [int] $VlanID - ) - - Begin { - $cmdletName = "Enable-NetworkSwitchVlan" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $vlans = Get-NetworkSwitchInstanceNoFilter -Namespace $nsNamespace ` - -ClassName CIM_NetworkVLAN ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - if ($InstanceId) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property InstanceId ` - -Value $InstanceId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($VlanID) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property VlanId ` - -Value $VlanId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($Name) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property ElementName ` - -Value $Name ` - -UseLike ` - -CmdletName $cmdletName - } - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -CimSession $CimSession ` - -CmdletName $cmdletName - foreach ($vlan in $vlans) { - if ($(CmdletShouldProcess $PSCmdlet $vlan)) { - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "EnableVLAN" ` - -Arguments @{VLAN = [ciminstance[]]@($vlan)} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Get-NetworkSwitchVlan() { -[CmdletBinding(DefaultParameterSetName="NameSet")] -[OutputType([Microsoft.Management.Infrastructure.CimInstance])] -[OutputType("Microsoft.Management.Infrastructure.CimInstance#CIM_NetworkVLAN")] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$true, ParameterSetName="VlanIdSet")] - [int] $VlanId, - - [Parameter(Mandatory=$true, ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$true, ParameterSetName="CaptionSet")] - [string] $Caption, - - [Parameter(Mandatory=$true, ParameterSetName="DescriptionSet")] - [string] $Description - ) - - Begin { - $cmdletName = "Get-NetworkSwitchVlan" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $vlanList = Get-NetworkSwitchInstanceNoFilter -ClassName CIM_NetworkVlan ` - -Namespace $nsNamespace ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - if ($Name) { - $vlanList = Filter-NetworkSwitchInstance -Instances $vlanList ` - -Property ElementName ` - -Value $Name ` - -UseLike ` - -CmdletName $cmdletName - } - elseif ($Caption) { - $vlanList = Filter-NetworkSwitchInstance -Instances $vlanList ` - -Property Caption ` - -Value $Caption ` - -UseLike ` - -CmdletName $cmdletName - } - elseif ($Description) { - $vlanList = Filter-NetworkSwitchInstance -Instances $vlanList ` - -Property Description ` - -Value $Description ` - -UseLike ` - -CmdletName $cmdletName - } - elseif ($VlanId) { - $vlanList = Filter-NetworkSwitchInstance -Instances $vlanList ` - -Property VlanId ` - -Value $VlanId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($InstanceId) { - $vlanList = Filter-NetworkSwitchInstance -Instances $vlanList ` - -Property InstanceId ` - -Value $InstanceId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - - $vlanList - } - - End {} -} - -function New-NetworkSwitchVlan() { -[CmdletBinding()] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false)] - [string] $Caption, - - [Parameter(Mandatory=$false)] - [string] $Description, - - [Parameter(Mandatory=$true)] - [int] $VlanID, - - [Parameter(Mandatory=$true)] - [string] $Name - ) - - Begin { - $cmdletName = "New-NetworkSwitchVlan" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - $cs = Get-NetworkSwitchInstanceNoFilter -CimSession $CimSession ` - -ClassName CIM_ComputerSystem ` - -Namespace $nsNamespace ` - -CmdletName $cmdletName - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -ClassName MSFT_SwitchService ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $vlanCls = Get-NetworkSwitchClass -Namespace $nsNamespace ` - -ClassName CIM_NetworkVLAN ` - -CimSession $CimSession ` - -CmdletName $cmdletName - - $vlan = New-LocalCimInstance -CimClass $vlanCls ` - -Property @{VLANId = $VlanID; ` - ElementName = $Name; ` - Caption = [string]$Caption; ` - Description = [string]$Description} - - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "AddVLAN" ` - -Arguments @{ TargetedSwitch = $cs[0]; ` - NetworkVLAN = [ciminstance[]]@($vlan) } ` - -CmdletName $cmdletName - } - - End {} -} - -function Remove-NetworkSwitchVlan() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false, ParameterSetName="InstanceIdSet")] - [string] $InstanceId, - - [Parameter(Mandatory=$false, ParameterSetName="NameSet")] - [string] $Name, - - [Parameter(Mandatory=$false, ParameterSetName="VlanIdSet")] - [int] $VlanId, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Remove-NetworkSwitchVlan" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $vlans = $input[0] - } - else { - $vlans = $InputObject - } - } - else { - $vlans = Get-NetworkSwitchInstanceNoFilter -NameSpace $nsNamespace ` - -ClassName CIM_NetworkVlan ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($Name) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property ElementName ` - -Value $Name ` - -UseLike ` - -CmdletName $cmdletName - } - elseif ($VlanId) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property VlanId ` - -Value $VlanId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - elseif ($InstanceId) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property InstanceId ` - -Value $InstanceId ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - } - - $switchService = Get-NetworkSwitchService -Namespace $nsNamespace ` - -ClassName MSFT_SwitchService ` - -CimSession $CimSession ` - -CmdletName $cmdletName - foreach ($vlan in $vlans) { - if ($(CmdletShouldProcess $PSCmdlet $vlan)) { - Invoke-NetworkSwitchMethod -Instance $switchService[0] ` - -CimSession $CimSession ` - -MethodName "RemoveVLAN" ` - -Arguments @{VLAN = [ciminstance[]]@($vlan)} ` - -CmdletName $cmdletName - } - } - } - - End {} -} - -function Set-NetworkSwitchVlanProperty() { -[CmdletBinding(SupportsShouldProcess=$true)] -param( - [Parameter(Mandatory=$true)] - [Microsoft.Management.Infrastructure.CimSession] $CimSession, - - [Parameter(Mandatory=$false)] - [System.Collections.HashTable] $Property, - - [Parameter(Mandatory=$true, ParameterSetName="VlanIdSet")] - [int[]] $VlanId, - - [Parameter(Mandatory=$true, - ParameterSetName="InputObjectSet", - ValueFromPipeline=$true)] - [Microsoft.Management.Infrastructure.CimInstance[]] $InputObject - ) - - Begin { - $cmdletName = "Set-NetworkSwitchVlanProperty" - $nsNamespace = Get-NetworkSwitchImplementationNamespace -CimSession $CimSession - } - - Process { - if (-not $nsNamespace) { return } - - if ($InputObject) { - if ($input) { - $vlans = $input[0] - } - else { - $vlans = $InputObject - } - } - else { - $vlans = Get-NetworkSwitchInstanceNoFilter -NameSpace $nsNamespace ` - -ClassName CIM_NetworkVlan ` - -CimSession $CimSession ` - -CmdletName $cmdletName - if ($VlanId) { - $vlans = Filter-NetworkSwitchInstance -Instances $vlans ` - -Property VlanId ` - -Value $VlanId ` - -UseContains ` - -AssertNonEmpty ` - -CmdletName $cmdletName - } - } - - foreach ($vlan in $vlans) { - if ($(CmdletShouldProcess $PSCmdlet $vlan)) { - Set-NetworkSwitchInstance -InputObject $vlan ` - -Property $Property ` - -CimSession $CimSession ` - -CmdletName $cmdletName - } - } - } - - End {} -} diff --git a/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/ko-KR/NetworkSwitchManager.Resource.psd1 b/newton-cn/bin/v1.0/Modules/NetworkSwitchManager/ko-KR/NetworkSwitchManager.Resource.psd1 deleted file mode 100644 index 8d02f466f61a003733ae752fd03915fa993460f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3352 zcmeHKO-NKx6h46q3!;Jo7cMSns9@^&lO|0lO+SX3l-4Y4F*s@BG&9V+%2J_)fr}O` zT)1iHBHV?qWaE#j`O2W%Mdp)ynFAv@7{CI`OZ1t zJ@e~l5eaG~7xj>h9Mn$_=qA}|KbfeSDyfR<(N?23(J8Dn;nzrYco)=6ZD>pB0{TuW z!=4(<*Wmj}s-RkoE9A~P*$RAbhirxJ;WQ5o&{d53@!mtXAi+jXJbhT6f)Bgn0SPiBZZ5Cilf#b zse%gUKZeEJ<`u1Tu6|a~ zWH?W=z7dp{=nhyC3Rad!kIpN>$B_Nae?oLK;=O`)J6lsc z=$Ot+3OWP^VjGw_AF5B|TiL=DZXZ0t^#tFZe0O$8M(@QeS8+ymFpDwsyRfqoYn^Kn z_?~Bu-Z)cfxL(lVmmFcaa@a4KJf7?0RbMM}X$De!O9-+iCT4i==H6ypHuo{t|N1`x zJ;z&M6(hs-7}x)1;294Ia>o?)2YfY*+ehcu)UCiVc4moB(DNo8k2?1X$lxqV=e=GN NWZ$YKxO15kegm^GPWb=; diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.cdxml deleted file mode 100644 index 13bfec9..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.cdxml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - 1.0 - Net6to4Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.format.ps1xml deleted file mode 100644 index 27443ab..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.format.ps1xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - MSFT_Net6to4Configuration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_Net6to4Configuration - Microsoft.Management.Infrastructure.CimInstance#MSFT_Net6to4Configuration - - - - - - - Description - - - State - - - AutoSharing - - - RelayName - - - RelayState - - - ResolutionInterval - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.types.ps1xml deleted file mode 100644 index 26d7736..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_Net6to4Configuration.types.ps1xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_Net6to4Configuration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - AutoSharing - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['AutoSharing'].Value) - - - $this.PSBase.CimInstanceProperties['AutoSharing'].Value = [System.UInt32]$_ - - - - RelayState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['RelayState'].Value) - - - $this.PSBase.CimInstanceProperties['RelayState'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Net6to4Configuration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - AutoSharing - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['AutoSharing'].Value) - - - $this.PSBase.CimInstanceProperties['AutoSharing'].Value = [System.UInt32]$_ - - - - RelayState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Net6to4Configuration.State]($this.PSBase.CimInstanceProperties['RelayState'].Value) - - - $this.PSBase.CimInstanceProperties['RelayState'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.cdxml deleted file mode 100644 index 0b25047..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.cdxml +++ /dev/null @@ -1,145 +0,0 @@ - - - - 1.0 - NetDnsTransitionConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.format.ps1xml deleted file mode 100644 index 3acfe7b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.format.ps1xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - MSFT_NetDnsTransitionConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetDnsTransitionConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetDnsTransitionConfiguration - - - - - - - State - - - AcceptInterface - - - SendInterface - - - OnlySendAQuery - - - Latency - - - - AlwaysSynthesize - - - ExclusionList - - - PrefixMapping - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.types.ps1xml deleted file mode 100644 index 3bb4707..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionConfiguration.types.ps1xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetDnsTransitionConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetDnsTransitionConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetDnsTransitionConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetDnsTransitionConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.cdxml deleted file mode 100644 index 3ccd6fd..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.cdxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1.0 - NetDnsTransitionMonitoring - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.format.ps1xml deleted file mode 100644 index 9da684e..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetDnsTransitionMonitoring.format.ps1xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - MSFT_NetDnsTransitionMonitoring - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetDnsTransitionMonitoring - - - - - - - NumAAAAQueriesSucceeded - - - NumAAAAQueriesFailed - - - NumAAAAQueriesSynthesized - - - NumAAAAQueriesIn6ArpaPtr - - - NumOtherQueriesSucceeded - - - NumOtherQueriesFailed - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.cdxml deleted file mode 100644 index 1980c83..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.cdxml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - 1.0 - NetIsatapConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.format.ps1xml deleted file mode 100644 index 0c0262d..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.format.ps1xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - MSFT_NetISATAPConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetISATAPConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetISATAPConfiguration - - - - - - - Description - - - State - - - Router - - - ResolutionState - - - ResolutionInterval - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.types.ps1xml deleted file mode 100644 index e9e6f72..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetISATAPConfiguration.types.ps1xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetISATAPConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetISATAPConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - ResolutionState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetISATAPConfiguration.State]($this.PSBase.CimInstanceProperties['ResolutionState'].Value) - - - $this.PSBase.CimInstanceProperties['ResolutionState'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetISATAPConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetISATAPConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - ResolutionState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetISATAPConfiguration.State]($this.PSBase.CimInstanceProperties['ResolutionState'].Value) - - - $this.PSBase.CimInstanceProperties['ResolutionState'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.cdxml deleted file mode 100644 index a77d2c2..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.cdxml +++ /dev/null @@ -1,321 +0,0 @@ - - - - 1.0 - NetIPHttpsConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.format.ps1xml deleted file mode 100644 index df19335..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.format.ps1xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - MSFT_NetIPHttpsConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetIPHttpsConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPHttpsConfiguration - - - - - - - PolicyStore - - - ConfigurationType - - - Profile - - - ProfileActivated - - - State - - - ServerURL - - - Type - - - AuthMode - - - StrongCRLRequired - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.types.ps1xml deleted file mode 100644 index 3fdecb1..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsConfiguration.types.ps1xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetIPHttpsConfiguration - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - $this.PSBase.CimInstanceProperties['Type'].Value = [System.UInt32]$_ - - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - AuthMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.AuthMode]($this.PSBase.CimInstanceProperties['AuthMode'].Value) - - - $this.PSBase.CimInstanceProperties['AuthMode'].Value = [System.UInt32]$_ - - - - ConfigurationType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.ConfigurationType]($this.PSBase.CimInstanceProperties['ConfigurationType'].Value) - - - $this.PSBase.CimInstanceProperties['ConfigurationType'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetIPHttpsConfiguration - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - $this.PSBase.CimInstanceProperties['Type'].Value = [System.UInt32]$_ - - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - AuthMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.AuthMode]($this.PSBase.CimInstanceProperties['AuthMode'].Value) - - - $this.PSBase.CimInstanceProperties['AuthMode'].Value = [System.UInt32]$_ - - - - ConfigurationType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetIPHttpsConfiguration.ConfigurationType]($this.PSBase.CimInstanceProperties['ConfigurationType'].Value) - - - $this.PSBase.CimInstanceProperties['ConfigurationType'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.cdxml deleted file mode 100644 index 9c469ef..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0 - NetIPHttpsState - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.format.ps1xml deleted file mode 100644 index 02d64ff..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetIpHTTPsState.format.ps1xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - MSFT_NetIPHttpsState - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetIPHttpsState - - - - - - - LastErrorCode - 0x{0:x} - - - InterfaceStatus - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.cdxml deleted file mode 100644 index e64f942..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.cdxml +++ /dev/null @@ -1,165 +0,0 @@ - - - - 1.0 - NetNatTransitionConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.format.ps1xml deleted file mode 100644 index b4ba685..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.format.ps1xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - MSFT_NetNatTransitionConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetNatTransitionConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetNatTransitionConfiguration - - - - - - - InstanceName - - - PolicyStore - - - State - - - TcpMappingTimeout - - - InboundInterface - - - OutboundInterface - - - PrefixMapping - - - IPv4AddressPortPool - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.types.ps1xml deleted file mode 100644 index 5166a4f..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionConfiguration.types.ps1xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetNatTransitionConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatTransitionConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - PolicyStore - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatTransitionConfiguration.PolicyStore]($this.PSBase.CimInstanceProperties['PolicyStore'].Value) - - - $this.PSBase.CimInstanceProperties['PolicyStore'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetNatTransitionConfiguration - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatTransitionConfiguration.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - PolicyStore - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetNatTransitionConfiguration.PolicyStore]($this.PSBase.CimInstanceProperties['PolicyStore'].Value) - - - $this.PSBase.CimInstanceProperties['PolicyStore'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.cdxml deleted file mode 100644 index 5f916f5..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.cdxml +++ /dev/null @@ -1,23 +0,0 @@ - - - - 1.0 - NetNatTransitionMonitoring - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.format.ps1xml deleted file mode 100644 index 45ac971..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetNatTransitionMonitoring.format.ps1xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - MSFT_NetNatTransitionMonitoring - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetNatTransitionMonitoring - - - - - - 8 - - - - 25 - - - - 25 - - - - - - - - - - TransportProtocol - - - InboundAddress - - - OutboundAddress - - - NatOutboundAddress - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.cdxml deleted file mode 100644 index be6e084..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.cdxml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - 1.0 - NetTeredoConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.format.ps1xml deleted file mode 100644 index 83d6cb7..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.format.ps1xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - MSFT_NetTeredoConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetTeredoConfiguration - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetTeredoConfiguration - - - - - - - Description - - - Type - - - ServerName - - - RefreshInterval - - - - ClientPort - - - ServerVirtualIP - - - DefaultQualified - - - ServerShunt - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.types.ps1xml deleted file mode 100644 index 89d5bc3..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoConfiguration.types.ps1xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetTeredoConfiguration - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTeredoConfiguration.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - $this.PSBase.CimInstanceProperties['Type'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetTeredoConfiguration - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetTeredoConfiguration.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - $this.PSBase.CimInstanceProperties['Type'].Value = [System.UInt32]$_ - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.cdxml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.cdxml deleted file mode 100644 index bf9550b..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.cdxml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 1.0 - NetTeredoState - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.format.ps1xml b/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.format.ps1xml deleted file mode 100644 index 03a7da9..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/MSFT_NetTeredoState.format.ps1xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - MSFT_NetTeredoState - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetTeredoState - - - - - - - Error - - - State - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/NetworkTransition/NetworkTransition.psd1 b/newton-cn/bin/v1.0/Modules/NetworkTransition/NetworkTransition.psd1 deleted file mode 100644 index 8fb8477..0000000 --- a/newton-cn/bin/v1.0/Modules/NetworkTransition/NetworkTransition.psd1 +++ /dev/null @@ -1,17 +0,0 @@ - -@{ - ModuleVersion = '1.0.0.0' - NestedModules = @("MSFT_Net6to4Configuration.cdxml", "MSFT_NetDnsTransitionConfiguration.cdxml", "MSFT_NetDnsTransitionMonitoring.cdxml", "MSFT_NetIpHTTPsConfiguration.cdxml", "MSFT_NetIpHTTPsState.cdxml", "MSFT_NetISATAPConfiguration.cdxml", "MSFT_NetNatTransitionConfiguration.cdxml", "MSFT_NetNatTransitionMonitoring.cdxml", "MSFT_NetTeredoConfiguration.cdxml", "MSFT_NetTeredoState.cdxml") - FormatsToProcess = @("MSFT_Net6to4Configuration.format.ps1xml", "MSFT_NetDnsTransitionConfiguration.format.ps1xml", "MSFT_NetDnsTransitionMonitoring.format.ps1xml", "MSFT_NetIpHTTPsConfiguration.format.ps1xml", "MSFT_NetIpHTTPsState.format.ps1xml", "MSFT_NetISATAPConfiguration.format.ps1xml", "MSFT_NetNatTransitionConfiguration.format.ps1xml", "MSFT_NetNatTransitionMonitoring.format.ps1xml", "MSFT_NetTeredoConfiguration.format.ps1xml", "MSFT_NetTeredoState.format.ps1xml") - TypesToProcess = @("MSFT_Net6to4Configuration.types.ps1xml", "MSFT_NetDnsTransitionConfiguration.types.ps1xml", "MSFT_NetIpHTTPsConfiguration.types.ps1xml", "MSFT_NetISATAPConfiguration.types.ps1xml", "MSFT_NetNatTransitionConfiguration.types.ps1xml", "MSFT_NetTeredoConfiguration.types.ps1xml") - HelpInfoUri = "http://go.microsoft.com/fwlink/?LinkId=285559" - GUID = '{EFF9CCF9-53ED-423d-B0DA-23E6772AACAA}' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - PowerShellVersion = '5.1' - Copyright = '© Microsoft Corporation. All rights reserved.' - FunctionsToExport = @("Add-NetIPHttpsCertBinding", "Disable-NetDnsTransitionConfiguration", "Disable-NetIPHttpsProfile", "Disable-NetNatTransitionConfiguration", "Enable-NetDnsTransitionConfiguration", "Enable-NetIPHttpsProfile", "Enable-NetNatTransitionConfiguration", "Get-Net6to4Configuration", "Get-NetDnsTransitionConfiguration", "Get-NetDnsTransitionMonitoring", "Get-NetIPHttpsConfiguration", "Get-NetIPHttpsState", "Get-NetIsatapConfiguration", "Get-NetNatTransitionConfiguration", "Get-NetNatTransitionMonitoring", "Get-NetTeredoConfiguration", "Get-NetTeredoState", "New-NetIPHttpsConfiguration", "New-NetNatTransitionConfiguration", "Remove-NetIPHttpsCertBinding", "Remove-NetIPHttpsConfiguration", "Remove-NetNatTransitionConfiguration", "Rename-NetIPHttpsConfiguration", "Reset-Net6to4Configuration", "Reset-NetDnsTransitionConfiguration", "Reset-NetIPHttpsConfiguration", "Reset-NetIsatapConfiguration", "Reset-NetTeredoConfiguration", "Set-Net6to4Configuration", "Set-NetDnsTransitionConfiguration", "Set-NetIPHttpsConfiguration", "Set-NetIsatapConfiguration", "Set-NetNatTransitionConfiguration", "Set-NetTeredoConfiguration") - CmdletsToExport = @() - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/PKI/pki.psd1 b/newton-cn/bin/v1.0/Modules/PKI/pki.psd1 deleted file mode 100644 index 6b2d4a261538bf0f32a67fb7f5e9e7d7c088f590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1982 zcmb`IUvCmo5XH~4iQl2|1x@S%6{|HNmOxWUEg^;a4lGd8_$QVRfj!_W6FJP-RvXena(G z_3?U#-#+%YSPoeq5K+;Py#t;*&JyFosz@2J_Tt3#uEH7j8+cip8WZd0=#RA`0VZA#O`fKMMJDNe1{4) z{LkSZqCtf9i`$Pk^;r#N{7T!$E7rm*hMl48M#mXd2k2*cO}7!x0F5lVwl5xwc|Y_Z&4q&>j~_uOz06h zz9)NmQ$w4$HQATwaOGG;f9YRfb^{_j*SbFIBE_eIPigD3tCp#ALcM-+ZIVr!W4*+? z2CtCwk=~mV^e|Ozl5C!>7sl8+GeFU#cgDY<*G}=>Oj)?;zHQXI&0vy5oWf$2$=9D^ ztM=c#^P%PQYN5x&nfCWWm-&vFf_x~CF-}uD(ZcK2aObJF&DW%3Nyi`S!$aRZeX!HN z&g?^8O%fEVE~5J#=4wpu>`qCa$VANxe5NRGw^&wnd0FJadP;w+s{c2u9rT`nH{hPg zsyI=nOJ=*9v;AJVd++zZmQ8S<9t=6(9nMeaa`{P4Zc~3_G#vId=yT>P$>{$ZhrD~_ HJBR-ZYwuYU diff --git a/newton-cn/bin/v1.0/Modules/PKI/pki.types.ps1xml b/newton-cn/bin/v1.0/Modules/PKI/pki.types.ps1xml deleted file mode 100644 index bf543e8..0000000 --- a/newton-cn/bin/v1.0/Modules/PKI/pki.types.ps1xml +++ /dev/null @@ -1,186 +0,0 @@ - - - System.Security.Cryptography.X509Certificates.X509Certificate2 - - - - EnrollmentPolicyEndPoint - - new-object Microsoft.CertificateServices.Commands.EnrollmentEndPointProperty -argumentlist $this,$true - - - $e = $this.EnrollmentPolicyEndPoint - $e.CopyUrlAndAuthType($args[0]) - - - - EnrollmentServerEndPoint - - new-object Microsoft.CertificateServices.Commands.EnrollmentEndPointProperty -argumentlist $this,$false - - - $e = $this.EnrollmentServerEndPoint - $e.CopyUrlAndAuthType($args[0]) - - - - PolicyId - - [Microsoft.CertificateServices.Commands.PolicyIdProperty]::ReadPolicyId($this) - - - $policyId = $args[0] - [Microsoft.CertificateServices.Commands.PolicyIdProperty]::WritePolicyId($this,$policyId) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psd1 deleted file mode 100644 index 05c8a5c..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psd1 +++ /dev/null @@ -1,33 +0,0 @@ -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'WindowsPackageCab.psm1' - -DscResourcesToExport = 'WindowsPackageCab' - -# Version number of this module. -ModuleVersion = '1.0' - -# ID used to uniquely identify this module -GUID = 'fe7be92e-9fad-47f7-84f7-aa6093bf4c0e' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = '(c) 2016 Microsoft. All rights reserved.' - -# Description of the functionality provided by this module -# Description = '' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.0' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# FunctionsToExport = '*' -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psm1 deleted file mode 100644 index 18d8d17..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/WindowsPackageCab.psm1 +++ /dev/null @@ -1,1109 +0,0 @@ -# -# Windows Cab Package Provider - Microsoft 2016 -# This resource manages the packages for a live image. -# - -data LocalizedData -{ - # culture="en-US" - ConvertFrom-StringData @' -SourcePathDoesNotExist=Source does not exist: {0} -ConfigurationStarted=The configuration of WindowsPackageCab resource is starting -ConfigurationFinished=The configuration of WindowsPackageCab resource has completed -FailedToAddPackage=Failed to add package from {0} -FailedToRemovePackage=Failed to remove package {0} -SourcePathInvalid=Source path is null or empty -'@ -} - -Import-LocalizedData LocalizedData -FileName WindowsPackageCab.Strings.psd1 - -[DscResource()] -class WindowsPackageCab { - - # Property: Holds the product name of the package. - [DscProperty(Key)] - [String] $Name; - - # Property: Makes sure a package is installed/not installed on the image. - [DscProperty(Mandatory)] - [ValidateSet("Absent","Present")] - [String] $Ensure; - - # Property: Points to the location of a .cab file. - [DscProperty(Mandatory)] - [String] $SourcePath; - - # Property: Points the desired location for a log file - [DscProperty()] - [String] $LogPath; - - WindowsPackageCab() - { - Import-DscNativeDISMMethods - } - - [void] Set() - { - Write-Verbose $script:LocalizedData.ConfigurationStarted - - if ([string]::IsNullOrEmpty($this.SourcePath)) - { - Throw-TerminatingError ($script:LocalizedData.SourcePathInvalid) - } - - $SourcePathExists = Test-Path -Path $this.SourcePath - if (-not $SourcePathExists) - { - Throw-TerminatingError ($script:LocalizedData.SourcePathDoesNotExist -f $this.SourcePath) - } - - if ($this.Ensure -match 'Present') - { - Add-CabPackage -PackagePath $this.SourcePath - } - else - { - Remove-CabPackage -PackagePath $this.SourcePath - } - - Write-Verbose $script:LocalizedData.ConfigurationFinished - } - - [bool] Test() - { - $details = Get-DISMDetailedInstalledPackageInfo -PackageName $this.Name - - $isPackagePresent = Test-PackagePresence -packageInfoDetails $details - - if ($this.Ensure -match 'Present') - { - return $isPackagePresent - } - else - { - return -not $isPackagePresent - } - } - - [WindowsPackageCab] Get() - { - $details = Get-DISMDetailedInstalledPackageInfo -PackageName $this.Name - - if ($details -eq $null) - { - $this.Ensure = 'Absent' - } - else - { - $this.Ensure = 'Present' - } - - $this.SourcePath = $null - $this.LogPath = $null - - return $this - } -} - -Function Trace-Message -{ - param - ( - [string] $Message - ) - - Write-Verbose $Message - - if ($this.LogPath) - { - New-Item -Path $this.LogPath -ErrorAction SilentlyContinue - Add-Content -Path $this.LogPath -Value $message - } -} - -Function Throw-TerminatingError -{ - param - ( - [string] $Message, - [System.Management.Automation.ErrorRecord] $ErrorRecord, - [string] $ExceptionType - ) - - $exception = new-object "System.InvalidOperationException" $Message,$ErrorRecord.Exception - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,"MachineStateIncorrect","InvalidOperation",$null - throw $errorRecord -} - -Function Test-PackagePresence -{ - Param - ( - [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.DismDetailedPackageInfo] $packageInfoDetails - ) - - if (-not $packageInfoDetails) - { - return $false; - } - - if ($packageInfoDetails.PackageState -eq [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.DismPackageFeatureState]::DismStateInstalled -or - $packageInfoDetails.PackageState -eq [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.DismPackageFeatureState]::DismStateInstallPending) - { - return $true; - } - - return $false; -} - -Function Get-DISMDetailedInstalledPackageInfo -{ - Param - ( - [string] $PackageName - ) - - try - { - $detailedPacketInfo = [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.Dism]::new().GetDetailedPackageInfo($PackageName, $this.LogPath) - } - catch - { - $detailedPacketInfo = $null - } - - return $detailedPacketInfo -} - -Function Get-DISMDetailedCabFileInfo -{ - Param - ( - [string] $PackagePath - ) - - return [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.Dism]::new().GetDetailedCabFileInfo($PackagePath, $this.LogPath) -} - -Function Add-CabPackage -{ - Param - ( - [string] $PackagePath - ) - - try - { - $dismStatus = [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.Dism]::new().AddPackage($PackagePath, $this.LogPath) - if ($dismStatus -eq [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.DismStatus]::DismStatusRebootRequired) - { - $global:DSCMachineStatus = 1; - } - Trace-Message ("-CabPackage successful. PackagePath = $PackagePath") - } - catch [System.Exception] - { - Throw-TerminatingError ($script:LocalizedData.FailedToAddPackage -f $this.SourcePath) - } - -} - -Function Remove-CabPackage -{ - Param - ( - [string] $PackagePath - ) - - try - { - $dismStatus = [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.Dism]::new().RemovePackage($PackagePath, $this.LogPath) - if ($dismStatus -eq [Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.DismStatus]::DismStatusRebootRequired) - { - $global:DSCMachineStatus = 1; - } - Trace-Message ("Remove-CabPackage successful. PackagePath = $PackagePath") - } - catch [System.Exception] - { - Throw-TerminatingError ($script:LocalizedData.FailedToRemovePackage -f $this.SourcePath) - } -} - -Function Import-DscNativeDISMMethods -{ - if (-not ([System.Management.Automation.PSTypeName]'Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab.Dism').Type) - { - $source = @" -using System; -using System.Collections.Generic; -using System.IO; -using System.Runtime.InteropServices; - -#if CORECLR - using Environment = System.Management.Automation.Environment; -#else -using Environment = System.Environment; -#endif - -namespace Microsoft.PowerShell.DesiredStateConfiguration.WindowsPackageCab -{ - #region Native Handlers - - internal enum DismPackageIdentifier - { - DismPackageNone = 0, - DismPackageName = 1, - DismPackagePath = 2 - }; - - internal enum DismLogLevel - { - DismLogErrors = 0, - DismLogErrorsWarnings, - DismLogErrorsWarningsInfo - }; - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - internal class SystemTime - { - [MarshalAs(UnmanagedType.U2)] - public UInt16 wYear; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wMonth; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wDayOfWeek; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wDay; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wHour; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wMinute; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wSecond; - [MarshalAs(UnmanagedType.U2)] - public UInt16 wMillisecond; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - internal class DismPackage - { - [MarshalAs(UnmanagedType.LPWStr)] - internal string PackageName; - internal DismPackageFeatureState PackageState; - internal DismReleaseType ReleaseType; - internal SystemTime InstalledOn; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - internal class DismPackageDetails - { - [MarshalAs(UnmanagedType.LPWStr)] - public string PackageName; - public DismPackageFeatureState PackageState; - public DismReleaseType ReleaseType; - public SystemTime InstalledOn; - public bool Applicable; - [MarshalAs(UnmanagedType.LPWStr)] - public string Copyright; - [MarshalAs(UnmanagedType.LPWStr)] - public string Company; - public SystemTime CreationTime; - [MarshalAs(UnmanagedType.LPWStr)] - public string DisplayName; - [MarshalAs(UnmanagedType.LPWStr)] - public string Description; - [MarshalAs(UnmanagedType.LPWStr)] - public string InstallClient; - [MarshalAs(UnmanagedType.LPWStr)] - public string InstallPackageName; - public SystemTime LastUpdateTime; - [MarshalAs(UnmanagedType.LPWStr)] - public string ProductName; - [MarshalAs(UnmanagedType.LPWStr)] - public string ProductVersion; - public DismRestartType RestartRequired; - public DismFullyOfflineInstallable FullyOffline; - [MarshalAs(UnmanagedType.LPWStr)] - public string SupportInformation; - public IntPtr CustomPropertyBuffer; - [MarshalAs(UnmanagedType.U4)] - public UInt32 CustomPropertyCount; - public IntPtr FeatureBuffer; - [MarshalAs(UnmanagedType.U4)] - public UInt32 FeatureCount; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - internal class DismPackageCustomProperty - { - [MarshalAs(UnmanagedType.LPWStr)] - public string Name; - [MarshalAs(UnmanagedType.LPWStr)] - public string Value; - [MarshalAs(UnmanagedType.LPWStr)] - public string Path; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public class DismPackageFeature - { - [MarshalAs(UnmanagedType.LPWStr)] - public string FeatureName; - public DismPackageFeatureState State; - } - - internal class DismNativeMethods - { - internal static string DismOnlineImage = "DISM_{53BFAE52-B167-4E2F-A258-0A37B57FF845}"; - - [DllImport("DismApi.dll")] - public static extern int DismCloseSession(uint session); - - [DllImport("DismApi.dll")] - public static extern int DismOpenSession( - [MarshalAs(UnmanagedType.LPWStr)] string imagePath, - [MarshalAs(UnmanagedType.LPWStr)] string windowsDirectory, - [MarshalAs(UnmanagedType.LPWStr)] string systemDrive, - out uint session - ); - - [DllImport("DismApi.dll")] - public static extern int DismInitialize( - DismLogLevel logLevel, - [MarshalAs(UnmanagedType.LPWStr)] string logFilePath, - [MarshalAs(UnmanagedType.LPWStr)] string scratchDirectory - ); - - [DllImport("DismApi.dll")] - public static extern int DismShutdown(); - - [DllImport("DismApi.dll")] - public static extern int DismDelete(IntPtr dismStructure); - - [DllImport("DismApi.dll")] - public static extern int DismGetPackages( - uint session, - out IntPtr packageBufPtr, - out uint packageCount - ); - - [DllImport("DismApi.dll")] - public static extern int DismGetPackageInfo( - uint session, - [MarshalAs(UnmanagedType.LPWStr)] string identifier, - DismPackageIdentifier packageIdentifier, - out IntPtr packageInfo - ); - - [DllImport("DismApi.dll")] - public static extern int DismAddPackage( - uint session, - [MarshalAs(UnmanagedType.LPWStr)] string packagePath, - [MarshalAs(UnmanagedType.Bool)] bool ignoreCheck, - [MarshalAs(UnmanagedType.Bool)] bool preventPending, - IntPtr cancelEvent, - DismProgressCallback progress, - IntPtr userData - ); - - [DllImport("DismApi.dll")] - public static extern int DismRemovePackage( - uint session, - [MarshalAs(UnmanagedType.LPWStr)] string identifier, - DismPackageIdentifier packageIdentifier, - IntPtr cancelEvent, - DismProgressCallback progress, - IntPtr userData - ); - - public delegate void DismProgressCallback( - uint current, - uint total, - IntPtr userData - ); - - internal static DateTime GetDateTimeFromSystemTime(SystemTime time) - { - try - { - return new DateTime(time.wYear, time.wMonth, time.wDay, - time.wHour, time.wMinute, time.wSecond, DateTimeKind.Local); - } - catch (ArgumentOutOfRangeException) - { - return new DateTime(0, DateTimeKind.Local); - } - } - } - - #endregion Native Handlers - - #region Helper Classes - - internal class DismHandler : IDisposable - { - #region Private Members - - private readonly string _logPath; - private uint _sessionToken; - private readonly DismLogLevel _logLevel; - private bool _sessionOpened; - - #endregion Private Members - - #region Constructors - internal DismHandler(string logPath, DismLogLevel logLevel) - { - _logPath = logPath; - _logLevel = logLevel; - } - - internal DismHandler() : this(string.Format("{0}\\dism.log", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))), DismLogLevel.DismLogErrorsWarnings) { } - - internal DismHandler(string logPath) - { - if (!String.IsNullOrEmpty(logPath)) - _logPath = logPath; - else - _logPath = string.Format("{0}\\dism.log", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))); - - _logLevel = DismLogLevel.DismLogErrorsWarnings; - } - #endregion Constructors - - #region Private Methods - private const int CbsInvalidPackage = unchecked((int)0x800f0805); - private const int FileNotFound = unchecked((int)0x80070002); - private const int CorruptedFile = unchecked((int)0x80070570); - private const int InvalidArgument = unchecked((int)0x80070057); - private const int SessionReloadRequired = 0x1; - private const int MachineRebootRequired = 0xbc2; - - private static void ValidateResult(int hr) - { - if (hr == 0) return; - if (IsSpecialErrorCode(hr)) return; - - switch (hr) - { - case CbsInvalidPackage: // 0x800f0805 - { - // 0x800f0805 -2146498555 : CBS_E_INVALID_PACKAGE the update package was not a valid CSI update - // when package is queried by name and is not installed - throw new DismInvalidPackageException(string.Format("Dism error code = {0}", hr)); - } - case FileNotFound: // 0x80070002 - { - // 0x80070002 : -2147024894 E_FILE_NOT_FOUND The system cannot find the file specified. - // when package is queried by path and the file does not exist - throw new FileNotFoundException(); - } - case CorruptedFile: // 0x80070570 - { - // 0x80070570 : 1392 ERROR_FILE_CORRUPT The file or directory is corrupted and unreadable - // when package file iscorrupted and unreadable - throw new DismInvalidPackageException(string.Format("Dism error code = {0}", hr)); - } - case InvalidArgument: // 0x80070057 - { - // 0x80070057 -2147024809 : E_INVALIDARG One or more arguments are invalid - // when package is queried by name and is not installed - throw new DismInvalidPackageException(string.Format("Dism error code = {0}", hr)); - } - default: - { - throw new DismException(string.Format("Dism error code = {0}", hr)); - } - } - } - - ///

- /// Special Error codes are not failures. They are positive values and often indicate an expected followup operation. - /// - /// - /// - private static bool IsSpecialErrorCode(int errorCode) - { - switch (errorCode) - { - case SessionReloadRequired: - { - return true; - } - case MachineRebootRequired: - { - return true; - } - } - - return false; - } - - private static DismStatus GetStatusFromErrorCode(int errorCode) - { - switch (errorCode) - { - case SessionReloadRequired: - { - return DismStatus.DismStatusSuccess; - } - case MachineRebootRequired: - { - return DismStatus.DismStatusRebootRequired; - } - } - - return DismStatus.DismStatusSuccess; - } - - private void OpenSession() - { - if (_sessionOpened) return; - - var hr = DismNativeMethods.DismInitialize(_logLevel, _logPath, null); - ValidateResult(hr); - - hr = DismNativeMethods.DismOpenSession(DismNativeMethods.DismOnlineImage, null, null, out _sessionToken); - ValidateResult(hr); - - _sessionOpened = true; - } - - private void CloseSession() - { - if (!_sessionOpened) return; - - var hr = DismNativeMethods.DismCloseSession(_sessionToken); - ValidateResult(hr); - - DismNativeMethods.DismShutdown(); - - _sessionOpened = false; - } - - private void DeleteDismBuffer(IntPtr buffer) - { - if (buffer != IntPtr.Zero) DismNativeMethods.DismDelete(buffer); - buffer = IntPtr.Zero; - } - - #endregion Private Methods - - #region Dispose - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected void Dispose(bool isDisposing) - { - CloseSession(); - } - - #endregion Dispose - - #region Core Logic - - internal List GetInstalledPackages() - { - OpenSession(); - - List packages = new List(); - - IntPtr pPackagesBuffer; - uint numOfPackages = 0; - - var hr = DismNativeMethods.DismGetPackages(_sessionToken, out pPackagesBuffer, out numOfPackages); - ValidateResult(hr); - - try - { - var pBuffer = pPackagesBuffer; - var originalPackageSize = Marshal.SizeOf(typeof(DismPackage)); - for (uint i = 0; i < numOfPackages; i++) - { - try - { - var dismPackage = (DismPackage)Marshal.PtrToStructure(pBuffer, typeof(DismPackage)); - if (dismPackage != null) - { - packages.Add(new DismPackageInfo(dismPackage)); - } - } - finally - { - pBuffer = new IntPtr(pBuffer.ToInt64() + originalPackageSize); - } - } - } - finally - { - if (pPackagesBuffer != IntPtr.Zero) - { - DismNativeMethods.DismDelete(pPackagesBuffer); - } - } - return packages; - } - - internal DismDetailedPackageInfo GetPackageInfo(string identifier, DismPackageIdentifier packageIdentifier) - { - OpenSession(); - - IntPtr packageInfo; - - var hr = 0; - - hr = DismNativeMethods.DismGetPackageInfo(_sessionToken, identifier, packageIdentifier, out packageInfo); - ValidateResult(hr); - - try - { - var details = (DismPackageDetails)Marshal.PtrToStructure(packageInfo, typeof(DismPackageDetails)); - return extractDismDetailedPackageInfo(details); - } - finally - { - DeleteDismBuffer(packageInfo); - } - } - - internal DismDetailedPackageInfo extractDismDetailedPackageInfo(DismPackageDetails details) - { - string PackageName = details.PackageName; - DismPackageFeatureState PackageState = details.PackageState; - DismReleaseType ReleaseType = details.ReleaseType; - DateTime InstalledOn = DismNativeMethods.GetDateTimeFromSystemTime(details.InstalledOn); - bool Applicable = details.Applicable; - string Copyright = details.Copyright; - string Company = details.Company; - DateTime CreationTime = DismNativeMethods.GetDateTimeFromSystemTime(details.CreationTime); - string DisplayName = details.DisplayName; - string Description = details.Description; - string InstallClient = details.InstallClient; - string InstallPackageName = details.InstallPackageName; - DateTime LastUpdateTime = DismNativeMethods.GetDateTimeFromSystemTime(details.LastUpdateTime); - string ProductName = details.ProductName; - string ProductVersion = details.ProductVersion; - DismRestartType RestartRequired = details.RestartRequired; - DismFullyOfflineInstallable FullyOffline = details.FullyOffline; - string SupportInformation = details.SupportInformation; - - List CustomProperty = new List(); - - IntPtr currentCustomPropertyPtr = details.CustomPropertyBuffer; - for (int i = 0; i < details.CustomPropertyCount; ++i) - { - DismCustomProperty customPropertyInstance = new DismCustomProperty(currentCustomPropertyPtr); - CustomProperty.Add(customPropertyInstance); - currentCustomPropertyPtr = new IntPtr(currentCustomPropertyPtr.ToInt64() + Marshal.SizeOf(typeof(DismCustomProperty))); - } - - List Feature = new List(); - IntPtr currentFeaturePtr = details.FeatureBuffer; - for (int i = 0; i < details.FeatureCount; ++i) - { - DismFeature basicFeature = new DismFeature(currentFeaturePtr); - Feature.Add(basicFeature); - currentFeaturePtr = new IntPtr(currentFeaturePtr.ToInt64() + Marshal.SizeOf(typeof(DismPackageFeature))); - } - - return new DismDetailedPackageInfo( - PackageName, - PackageState, - ReleaseType, - InstalledOn, - Applicable, - Copyright, - Company, - CreationTime, - DisplayName, - Description, - InstallClient, - InstallPackageName, - LastUpdateTime, - ProductName, - ProductVersion, - RestartRequired, - FullyOffline, - SupportInformation, - CustomProperty, - Feature - ); - } - - internal DismStatus AddPackage(string packagePath) - { - OpenSession(); - - // Add the package - var hr = DismNativeMethods.DismAddPackage(_sessionToken, packagePath, false, false, IntPtr.Zero, null, IntPtr.Zero); - ValidateResult(hr); - return GetStatusFromErrorCode(hr); - } - - internal DismStatus RemoveInstalledPackage(string packagePath) - { - OpenSession(); - - // Remove the package - var hr = DismNativeMethods.DismRemovePackage(_sessionToken, packagePath, DismPackageIdentifier.DismPackagePath, IntPtr.Zero, null, IntPtr.Zero); - ValidateResult(hr); - return GetStatusFromErrorCode(hr); - } - - #endregion Core Logic - } - - #endregion Helper Classes - - #region Core Logic - - public class DismException : Exception - { - public DismException(string message) : base(message) - { - } - } - - public class DismInvalidPackageException : Exception - { - public DismInvalidPackageException(string message) - { - } - } - - public class DismSessionException : Exception - { - public DismSessionException(string message) - { - } - } - - /// - /// Core Dism class is used directly by the resource and provides a managed interface - /// - public class Dism - { - /// - /// Get a list of installed packages - /// - /// list containining installed packages - public List GetInstalledPackages(string logPath = null) - { - using (var dismHandler = new DismHandler(logPath)) - { - return dismHandler.GetInstalledPackages(); - } - } - - /// - /// Get detailed package info based on unique package name - /// - /// - /// - public DismDetailedPackageInfo GetDetailedPackageInfo(string packageName, string logPath = null) - { - using (var dismHandler = new DismHandler(logPath)) - { - return dismHandler.GetPackageInfo(packageName, DismPackageIdentifier.DismPackageName); - } - } - - /// - /// Get detailed package info based on path to a .cab file - /// - public DismDetailedPackageInfo GetDetailedCabFileInfo(string packagePath, string logPath = null) - { - using (var dismHandler = new DismHandler(logPath)) - { - return dismHandler.GetPackageInfo(packagePath, DismPackageIdentifier.DismPackagePath); - } - } - - /// - /// Install windows package from .cab file - /// - /// - /// - public DismStatus AddPackage(string packagePath, string logPath = null) - { - using (var dismHandler = new DismHandler(logPath)) - { - return dismHandler.AddPackage(packagePath); - } - } - - /// - /// Remove the installed windows package pointed to by the .cab file - /// - /// - /// - public DismStatus RemovePackage(string packagePath, string logPath = null) - { - using (var dismHandler = new DismHandler(logPath)) - { - return dismHandler.RemoveInstalledPackage(packagePath); - } - } - - private static readonly object SyncObject = new object(); - private static Dism _instance; - public static Dism Instance - { - get - { - if (_instance == null) - { - lock (SyncObject) - { - if (_instance == null) - { - _instance = new Dism(); - } - } - } - - return _instance; - } - } - } - - public class DismDetailedPackageInfo - { - public string PackageName; - public DismPackageFeatureState PackageState; - public DismReleaseType ReleaseType; - public DateTime InstalledOn; - public bool Applicable; - public string Copyright; - public string Company; - public DateTime CreationTime; - public string DisplayName; - public string Description; - public string InstallClient; - public string InstallPackageName; - public DateTime LastUpdateTime; - public string ProductName; - public string ProductVersion; - public DismRestartType RestartRequired; - public DismFullyOfflineInstallable FullyOffline; - public string SupportInformation; - public List CustomProperty; - public List Feature; - - internal DismDetailedPackageInfo( - string aPackageName, - DismPackageFeatureState aPackageState, - DismReleaseType aReleaseType, - DateTime aInstalledOn, - bool aApplicable, - string aCopyright, - string aCompany, - DateTime aCreationTime, - string aDisplayName, - string aDescription, - string aInstallClient, - string aInstallPackageName, - DateTime aLastUpdateTime, - string aProductName, - string aProductVersion, - DismRestartType aRestartRequired, - DismFullyOfflineInstallable aFullyOffline, - string aSupportInformation, - List aCustomProperty, - List aFeature - ) - { - PackageName = aPackageName; - PackageState = aPackageState; - ReleaseType = aReleaseType; - InstalledOn = aInstalledOn; - Applicable = aApplicable; - Copyright = aCopyright; - Company = aCompany; - CreationTime = aCreationTime; - DisplayName = aDisplayName; - Description = aDescription; - InstallClient = aInstallClient; - InstallPackageName = aInstallPackageName; - LastUpdateTime = aLastUpdateTime; - ProductName = aProductName; - ProductVersion = aProductVersion; - RestartRequired = aRestartRequired; - FullyOffline = aFullyOffline; - SupportInformation = aSupportInformation; - CustomProperty = aCustomProperty; - Feature = aFeature; - } - } - - public class DismCustomProperty - { - public string Name; - public string Value; - public string Path; - - public DismCustomProperty( - string Name, - string Value, - string Path - ) - { - this.Name = Name; - this.Value = Value; - this.Path = Path; - } - - public DismCustomProperty(IntPtr DismPackageCustomPropertyPtr) - { - DismPackageCustomProperty customProperty = (DismPackageCustomProperty)Marshal.PtrToStructure(DismPackageCustomPropertyPtr, typeof(DismPackageCustomProperty)); - - Name = customProperty.Name; - Value = customProperty.Value; - Path = customProperty.Path; - } - } - - public class DismFeature - { - public string FeatureName; - public DismFeatureState FeatureState; - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - public DismFeature(IntPtr FeatureBuf) - { - DismPackageFeature Feature = (DismPackageFeature)Marshal.PtrToStructure(FeatureBuf, typeof(DismPackageFeature)); - - SetFeatureState(Feature.State); - FeatureName = Feature.FeatureName; - } - - public void SetFeatureState(DismPackageFeatureState state) - { - switch (state) - { - case DismPackageFeatureState.DismStateNotPresent: - case DismPackageFeatureState.DismStateStaged: - FeatureState = DismFeatureState.Disabled; - break; - case DismPackageFeatureState.DismStateUninstallPending: - FeatureState = DismFeatureState.DisablePending; - break; - case DismPackageFeatureState.DismStateResolved: - FeatureState = DismFeatureState.DisabledWithPayloadRemoved; - break; - case DismPackageFeatureState.DismStateInstalled: - FeatureState = DismFeatureState.Enabled; - break; - case DismPackageFeatureState.DismStateInstallPending: - FeatureState = DismFeatureState.EnablePending; - break; - case DismPackageFeatureState.DismStateSuperseded: - FeatureState = DismFeatureState.Superseded; - break; - case DismPackageFeatureState.DismStatePartiallyInstalled: - FeatureState = DismFeatureState.PartiallyInstalled; - break; - default: - FeatureState = DismFeatureState.Disabled; - break; - } - } - } - - public enum DismPackageFeatureState - { - DismStateNotPresent = 0, - DismStateUninstallPending, - DismStateStaged, - DismStateResolved, - DismStateRemoved = DismStateResolved, - DismStateInstalled, - DismStateInstallPending, - DismStateSuperseded, - DismStatePartiallyInstalled - }; - - public enum DismFeatureState - { - Disabled = 0, - DisablePending, - Enabled, - EnablePending, - Superseded, - PartiallyInstalled, - DisabledWithPayloadRemoved - } - - public enum DismReleaseType - { - DismReleaseTypeCriticalUpdate = 0, - DismReleaseTypeDriver, - DismReleaseTypeFeaturePack, - DismReleaseTypeHotfix, - DismReleaseTypeSecurityUpdate, - DismReleaseTypeSoftwareUpdate, - DismReleaseTypeUpdate, - DismReleaseTypeUpdateRollup, - DismReleaseTypeLanguagePack, - DismReleaseTypeFoundation, - DismReleaseTypeServicePack, - DismReleaseTypeProduct, - DismReleaseTypeLocalPack, - DismReleaseTypeOther - }; - - public class DismPackageInfo - { - public string Name; - public DismPackageFeatureState PackageState; - public DismReleaseType ReleaseType; - public DateTime InstalledOn; - - internal DismPackageInfo(DismPackage package) - { - Name = package.PackageName; - PackageState = package.PackageState; - ReleaseType = package.ReleaseType; - InstalledOn = DismNativeMethods.GetDateTimeFromSystemTime(package.InstalledOn); - } - } - - public enum DismRestartType - { - DismRestartNo = 0, - DismRestartPossible = 1, - DismRestartRequired = 2 - } - - public enum DismFullyOfflineInstallable - { - DismFullyOfflineInstallable = 0, - DismFullyOfflineNotInstallable = 1, - DismFullyOfflineInstallableUndetermined = 2 - } - - public enum DismStatus - { - DismStatusSuccess = 0, - DismStatusRebootRequired = 1, - DismStatusFailed = 2 - }; - - #endregion Core logic - -} - - -"@ - - Add-Type -TypeDefinition $source - } -} - -Export-ModuleMember -Function '' \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/ko-KR/WindowsPackageCab.Strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCClassResources/WindowsPackageCab/ko-KR/WindowsPackageCab.Strings.psd1 deleted file mode 100644 index 79e605b803be2420e46bc5e6e91e6c4431fa2a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmbtTOG^S_6g}I5{y~cmTv&^&(Vl{kG#P=Fq)>}CrKUr^sOdqEy^A(Mi++I12|@~b zlY)*xfe`Lm_9I$V=bMTwdQl8>@5g-io_p@SXC5DH5bz_7Fs6}!hE+rnK?4*x(T)!E z&^qZA^f6N5<3=ZXdG=z2wgp4;xujXl)Li$qJIJ7XtR(j3M6)wg35Zg#Vu2-Rq}Uv z#}Czf);1*HID7bOJ+*vwn5`WY-zxez8;zQim?8G%rH_12h391+)lzeTTD!?rFD}=Q z1h%hXOx7+g1x}8?M;#}AlIU`??-looU60#b$$WwP*;a=w#XSEvaxQY00%yk5Aq>I0 hMRu2fZf1;~JpuK6za)?~>t`U<^HD!iLv|`m`X>tK+9Ch| diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/CompositeResourceHelper.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/CompositeResourceHelper.psm1 deleted file mode 100644 index 3cb4906..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/CompositeResourceHelper.psm1 +++ /dev/null @@ -1,147 +0,0 @@ -########################################################################### -# Common code for built-in Composite Resources -########################################################################### - -Set-StrictMode -version Latest - -# -# Builds a string with all common parameters shared across all -# resource nodes. -# -function BuildResourceCommonParameters -{ - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $KeyParamName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Array] - $OptionalParams, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.Collections.Hashtable] - $PSBoundParams) - - [System.Text.StringBuilder] $pb = new-object System.Text.StringBuilder - - #build optional parameters for invoking the inbuilt resource - foreach($paramName in $($PSBoundParams.keys)) - { - #If the param name is the 'Key' then continue - if ($paramName -eq $KeyParamName) - { - continue - } - if ($paramName -in $OptionalParams) - { - $value = $PSBoundParams[$paramName] - if ($value -eq $null) - { - continue - } - - if ($value -is [System.String]) - { - $pb.AppendFormat('{0} = "{1}"', $paramName, $value) | Out-Null - $pb.AppendLine() | Out-Null - } - else - { - $pb.Append($paramName + ' = $' + $paramName) | Out-Null - $pb.AppendLine() | Out-Null - } - } - } - - return $pb.ToString() -} - -# -# Builds a string with all resource nodes based on the key parameter along with -# the other optional parameters provided in the composite configuration. -# For e.g. While installing multiple features using WindowsFeature resource, -# output of this method would be: -# -# $KeyParam = @("Telnet-client","web-server") -# WindowsFeature Resource0 -# { -# Name = "Telnet-client" #Name provided in the composite configuration -# Ensure = "Present" -# IncludeAllSubFeature = True -# } -# -# WindowsFeature Resource1 -# { -# Name = "Web-Server" #Name provided in the composite configuration -# Ensure = "Present" -# IncludeAllSubFeature = True -# } -# -# -function BuildResourceString -{ - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string[]] - $KeyParam, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $KeyParamName, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $CommonParams, - - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $ResourceName, - - [ValidateNotNullOrEmpty()] - [string] - $ModuleName="PSDesiredStateConfiguration", - - [ValidateNotNullOrEmpty()] - [string] - $DefaultParams - ) - - [System.Text.StringBuilder] $sb = new-object System.Text.StringBuilder - - $sb.AppendFormat('Import-DscResource -Name {0} -ModuleName {1}', $ResourceName, $ModuleName) | Out-Null - $sb.AppendLine() | Out-Null - - # add the resource nodes and their common parameters - [int] $count = 0 - foreach ($key in $KeyParam) - { - $sb.AppendFormat('{0} Resource{1}', $ResourceName, $count) | Out-Null - $sb.AppendLine() | Out-Null - $sb.AppendLine('{') | Out-Null - $sb.AppendFormat($KeyParamName + ' = "{0}"', $key) | Out-Null - $sb.AppendLine() | Out-Null - $sb.AppendLine($CommonParams) | Out-Null - - if($DefaultParams) - { - $sb.AppendLine($DefaultParams) | Out-Null - } - - $sb.AppendLine('}') | Out-Null - $count++ - } - - return $sb.ToString() -} - -Export-ModuleMember -Function BuildResourceCommonParameters, BuildResourceString diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/DSCResourceHelper.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/DSCResourceHelper.psm1 deleted file mode 100644 index 04b5f01..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/DSCResourceHelper.psm1 +++ /dev/null @@ -1,14 +0,0 @@ -########################################################################### -# Common code for built-in DSC Resources -########################################################################### - -function IsNanoServer -{ - if($PSVersionTable.PSEdition -ieq 'Core') - { - return $true - } - return $false -} - -Export-ModuleMember -Function IsNanoServer diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.Schema.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.Schema.psm1 deleted file mode 100644 index f716431..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.Schema.psm1 +++ /dev/null @@ -1,40 +0,0 @@ -Import-Module "$PSScriptRoot\..\CompositeResourceHelper.psm1" - -Configuration GroupSet -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $GroupName, - - [ValidateSet('Present','Absent')] - [System.String] - $Ensure, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - $psboundParams = $PSBoundParameters - $optionalParameters = @("Ensure","MembersToInclude","MembersToExclude","Credential") - $keyParamName = "GroupName" - $resourceName = "Group" - - #build common parameters for all Group resource nodes - [string] $commonParameters = BuildResourceCommonParameters -KeyParamName $keyParamName -OptionalParams $optionalParameters -PSBoundParams $psboundParams - - #build Group resource string - [string] $resourceString = BuildResourceString -KeyParam $GroupName -KeyParamName $keyParamName -CommonParams $commonParameters -ResourceName $resourceName - - $configScript = [scriptblock]::Create($resourceString) - . $configScript -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/GroupSet/GroupSet.psd1 deleted file mode 100644 index 768299e95e9d9e3fc7d5283c32ec3748bc1ec190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5322 zcmc&&YflqF6uqBK{12P-17M_3CHP28Y(O4~ASw9xy0qKc*mi5XSdHCIrrSh+}U40YjR)iNlhX-l2kf!Ap=S9G?Z9I(w8otrjntji}8t$&8_9kb40{W|s^*@tKzYjQ<3Dk;gu)Mk{7$b+sqYkjFx8_T{aZT-!I1C-}r_ z=Y~9$b;#NTBQaWA_`Y*AaA~ zH>K(cT}X>$N9B$6mwsW^FpqYY;+!F@$oL>PhTx0x)0sbAg(sA83|T|0kL32q#=yh~ z>46(+#Mm_t=MJ=>kL1NRB)*~~!?p^})*#~%EW&tY-YD`|M{g6JGr+&c!f2WR1AT2G zpVt~tNLUu&4NXkXLWbV+3f z?4|=V&lm7Y4e1Bmho}?fIz$~~j5?Ef)1#*tnK7p&2FNC(ZwMWSSV5j9m>0^V<;cW) zolUPZY$w{{ic_6oHlW>mI+JUNlCj;_*0Ky$Nv_T_p+&uKhc;XeIpf<-pTCFtU@p@m zGb@L<@4^musm(IBSWc&MJV)@-V|gWK@SZ(*jb*DDc$~eDo%sf($Z{qGw-wY%V=@}CRvRzJF+feoy8i4 zbptb7f>s8s#1Y9VSfdt+JjBxnoSWO)Y65u&?X6p2E+c6!#8DkLz8YY*B>OynSV^(Y zV2f1^YYLvC)YVmm%zRdXIGgp5VN=YvOv^mR%ucRGY9%|*nDdz*$(pUt%cj(xj`*6+ zV|1r_3z+g*F<(zn59<07%&!IYXjARQ%I;jxAlmOwI#Zh%HnM8#E^t>Pszx7H)2=$E z2CIm8o=y$*ByU6dq>mNakhQ9_7Hc}5I6Qw=l!?2rnAN*A?3>3wMRrOh^xj2QJ3~b< zRz0e9{t9~z=9;q}Hh&FmH`DW#+F#$--2T_Wyr=%nTNxwh|KQGJxDNJWER|!F*^Yk4 zoW>ks@xff}ZloLyD~S9kD=b=+_c?N7>&-h`SXaEOZ3H*Bvgf$0z|+a$DQZz2Q+vpA zBhA)Uu~|N#7bWubGT+gH%wnwY7(MQ;>GdUovMeHf709t1{Gd=r??7@#BQaB6jq&Rv z2<0rh`#V^Z89COh=yKxCI4H|n76q$zVqook8!Lozmfiie+LWup!{dkBbpGR(vWDmMB>-$}*Q7}9A_1?q?kKm!qX1pJn ze-Z)fANTCem46ZGA-3I1WENlH-QWP|2e8~BBAsu=BE0cv;mO&0aYWZJr?}d!t=ftA z(k`&@tsH%c6$5+v$N~Ny?-Mai*c~7b5+(M oGLNh3)&n1n@NS1JJN*6}54E&+BliBW6RdFWN4zzDTvlVh0Y8g!Tj4c{s`0MJMSxQ@|iCzp@ zy1Vn07Es+86)}tv^KA8r*hyiR^UIml zI`(lv)ebltnTFX-9Sxjp-8P7(AQpX{m>~o>iUbuwr>TKlh-`R~D!mq5gMuu2Su!@Z|mFFU#sHNSX48s0r=% PJ(lOK3TY>3xyt_=zZk0W diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/ArchiveProvider.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/ArchiveProvider.psd1 deleted file mode 100644 index 780e23da9f1882d66a0aef5f32a5478b5e111414..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10024 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 diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/MSFT_ArchiveResource.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ArchiveResource/ko-KR/MSFT_ArchiveResource.schema.mfl deleted file mode 100644 index ee9ae75ec1955a7b5143bc891be2bfdf956c7842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 zcmb_dUr3Wt6h9BX6h$Ekd+_06J#1hyBO?kybJ;&lNe#h8&TXbN=Ww58Y2b^{V-E_x z1U=+~@Hy6;F=NIi&2NIm`ZMXF#~ynuFo^1R?%k(bx>yh&_q+S22O?g2Kw#f>`#ku44HVX({jI>+ z$3EM6v8UnO;pfv40X%)%YtERUuFWx{H=9@&^d&X9!slkgiA*Y-j(mtYf z8`a2+EA)+0H-2J8cqALF0LJErx&#o5CTs~D4SMYrg>=uuvD>d`lVF;T15YT7C zf-2Jiy*Df9zKmPYf%g*zE3Y&h?O<0!CX}X1#gOldv2<V}xhj1#o;mcGft&~`=NL!+O=5ne5cdqE+H30=*gj$ZH7VGE~Smx;U#Qa(@wftQZ zebDGID#VMZ{m9sL%s#N-kt`G{qc{UQ(PmPWNyP=@a=dI`;J5|Z;xlnx*->!~yzLz! zpCYiP8D-0fbrt{8Dl4DQkUke-zRGpx#AKsZ_5<@val;+LT&a`Yi&vVY;yK4$7mi$< zyweIMJczv?BY$toFnwRZx<)ES=G+oh70{8lo?ln>1$AxKdZ9&OKd_?fa7P-UyRudp zWdpK4ko_34!83Eqs$uW8sKQmc%9~JUUUaD2vhs%tYOZ*8mA*}7KQuU>N{g&?UgymE z7o(}IS9^D?f74(y^1$7>RP`Nu7JIj`=F15BrVAih(Va1sqpxvVPzaehSL$@~>8jFW xU{P^siE=cLjCtto@%q#Ym1`?$+3yi$$&vnBXH^RG06%y5L0M6%lbHXUzXAL*4n_a~ diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.psm1 deleted file mode 100644 index b0553b1..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.psm1 +++ /dev/null @@ -1,798 +0,0 @@ -# This PS module contains functions for Desired State Configuration (DSC) "Environment" provider - -# Fallback message strings in en-US -DATA localizedData -{ - # culture = "en-US" - ConvertFrom-StringData @' - EnvVarCreated = (CREATE) Environment variable '{0}' with value '{1}' - EnvVarSetError = (ERROR) Failed to set environment variable '{0}' to value '{1}' - EnvVarPathSetError = (ERROR) Failed to add path '{0}' to environment variable '{1}' holding value '{2}' - EnvVarRemoveError = (ERROR) Failed to remove environment variable '{0}' holding value '{1}' - EnvVarPathRemoveError = (ERROR) Failed to remove path '{0}' from variable '{1}' holding value '{2}' - EnvVarUnchanged = (UNCHANGED) Environment variable '{0}' with value '{1}' - EnvVarUpdated = (UPDATE) Environment variable '{0}' from value '{1}' to value '{2}' - EnvVarPathUnchanged = (UNCHANGED) Path environment variable '{0}' with value '{1}' - EnvVarPathUpdated = (UPDATE) Environment variable '{0}' from value '{1}' to value '{2}' - EnvVarNotFound = (NOT FOUND) Environment variable '{0}' - EnvVarFound = (FOUND) Environment variable '{0}' with value '{1}' - EnvVarFoundWithMisMatchingValue = (FOUND MISMATCH) Environment variable '{0}' with value '{1}' mismatched the specified value '{2}' - EnvVarRemoved = (REMOVE) Environment variable '{0}' -'@ -} -Import-LocalizedData LocalizedData -filename MSFT_EnvironmentResource.strings.psd1 - - -#------------------------------------- -# Script-level Constants and Variables -#------------------------------------- -$EnvVarRegPathMachine = "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Environment" -$EnvVarRegPathUser = "HKCU:\\Environment" - -$EnvironmentVariableTarget = @{ Process = 0; User = 1; Machine = 2 } -$MaxSystemEnvVariableLength = 1024 -$MaxUserEnvVariableLength = 255 - -Function Throw-InvalidArgumentException -{ - param( - [string] $Message, - [string] $ParamName - ) - - $exception = new-object System.ArgumentException $Message,$ParamName - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,$ParamName,"InvalidArgument",$null - throw $errorRecord -} - -function GetEnvironmentVariable -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [String] $Name, - - [parameter(Mandatory = $true)] - [int] $Target - ) - - if ($Target -eq $EnvironmentVariableTarget.Process) - { - return [System.Environment]::GetEnvironmentVariable($Name); - } - - if ($Target -eq $EnvironmentVariableTarget.Machine) - { - $retVal = Get-ItemProperty $EnvVarRegPathMachine -Name $Name -ErrorAction SilentlyContinue - return $retVal.$Name - } - - if ($Target -eq $EnvironmentVariableTarget.User) - { - $retVal = Get-ItemProperty $EnvVarRegPathUser -Name $Name -ErrorAction SilentlyContinue - return $retVal.$Name - } -} - -function SetEnvironmentVariable -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [String] $Name, - - [String] $Value, - - [parameter(Mandatory = $true)] - [int] $Target - ) - - if ($Target -eq $EnvironmentVariableTarget.Process) - { - [System.Environment]::SetEnvironmentVariable($Name, $Value); - } - - if ($Target -eq $EnvironmentVariableTarget.Machine) - { - if ($Name.Length -ge $MaxSystemEnvVariableLength) { - Throw-InvalidArgumentException -Message "Argument is too long." -ParamName $Name - } - $Path = $EnvVarRegPathMachine - } - elseif ($Target -eq $EnvironmentVariableTarget.User) - { - if ($Name.Length -ge $MaxUserEnvVariableLength) { - Throw-InvalidArgumentException -Message "Argument is too long." -ParamName $Name - } - $Path = $EnvVarRegPathUser - } - - $environmentKey = Get-ItemProperty $Path -Name $Name -ErrorAction SilentlyContinue - if ($environmentKey) - { - if (!$Value) - { - Remove-ItemProperty $Path -Name $Name -ErrorAction SilentlyContinue - } - else - { - Set-ItemProperty $Path -Name $Name -Value $Value -ErrorAction SilentlyContinue - } - } -} - - -#------------------------------ -# The Get-TargetResource cmdlet -#------------------------------ -FUNCTION Get-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name - ) - - $retVal = GetItemProperty $EnvVarRegPathMachine -Name $Name -Expand:$false -ErrorAction SilentlyContinue - - if($retVal -eq $null) - { - Write-Verbose ($localizedData.EnvVarNotFound -f $Name) - - return @{Ensure='Absent'; Name=$Name} - } - - Write-Verbose ($localizedData.EnvVarFound -f $Name, $retVal.$Name) - - return @{Ensure='Present'; Name=$Name; Value=$retVal.$Name} -} - -function Set-EnvVar -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [ValidateNotNull()] - [System.String] - $Value = [String]::Empty - ) - - $err = Set-ItemProperty $EnvVarRegPathMachine -Name $Name -Value $Value 2>&1 - - if($err) - { - Write-Verbose ($localizedData.EnvVarSetError -f $Name, $Value) - - throw $err - } - - try - { - if($value) - { - SetEnvironmentVariable -Name $Name -Value $Value -Target $EnvironmentVariableTarget.Machine - SetEnvironmentVariable -Name $Name -Value $Value -Target $EnvironmentVariableTarget.Process - } - } - catch - { - Write-Verbose ($localizedData.EnvVarSetError -f $Name, $Value) - - throw $_ - } - -} -function Remove-EnvVar -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name - ) - - $curVarProperties = Get-ItemProperty $EnvVarRegPathMachine -Name $Name -ErrorAction SilentlyContinue - $currentValueFromEnv = GetEnvironmentVariable -Name $name -Target $EnvironmentVariableTarget.Process - - if($curVarProperties -ne $null) - { - $err = Remove-ItemProperty $EnvVarRegPathMachine -Name $Name 2>&1 - - if($err) - { - Write-Log -Message ($localizedData.EnvVarRemoveError -f $Name, $Value) - - throw $err - } - } - - if($currentValueFromEnv -ne $null) - { - try - { - SetEnvironmentVariable -Name $Name -Value $null -Target $EnvironmentVariableTarget.Machine - SetEnvironmentVariable -Name $Name -Value $null -Target $EnvironmentVariableTarget.Process - } - catch - { - Write-Verbose ($localizedData.EnvVarRemoveError -f $Name, $Value) - - throw $_ - } - } -} - - -#------------------------------ -# The Set-TargetResource cmdlet -#------------------------------ -FUNCTION Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [ValidateNotNull()] - [System.String] - $Value = [String]::Empty, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.Boolean] - $Path = $false - ) - - $ValueSpecified = $PSBoundParameters.ContainsKey("Value") - - $curVarProperties = GetItemProperty $EnvVarRegPathMachine -Name $Name -Expand:(-not $Path) -ErrorAction SilentlyContinue - $currentValueFromEnv = GetEnvironmentVariable -Name $name -Target $EnvironmentVariableTarget.Process - - # ---------------- - # ENSURE = PRESENT - if ($Ensure -ieq "Present") - { - if (($curVarProperties -eq $null) -or (($currentValueFromEnv -eq $null) -and ($curVarProperties.$Name -ne [string]::Empty))) # The specified variable doesn't exist already - { - # Given the specified $Name environment variable doesn't exist already, - # simply create one with the specified value and return. If no $Value is - # specified, the default value is set to empty string "" (per spec). - # Both path and non-path cases are covered by this. - - $successMessage = $localizedData.EnvVarCreated -f $Name, $Value - - if ($PSCmdlet.ShouldProcess($successMessage, $null, $null)) - { - Set-EnvVar -Name $Name -Value $Value - } - - return - } - - # If the control reaches here, the specified variable exists already - - if (!$ValueSpecified) - { - # Given no $Value was specified to be set and the variable exists, - # we'll leave the existing variable as is. - # This covers both path and non-path variables. - - Write-Log -Message ($localizedData.EnvVarUnchanged -f $Name, $curVarProperties.$Name) - - return - } - - # If the control reaches here: the specified variable exists already and a $Value has been specified to be set. - - if (!$Path) - { - # For non-path variables, simply set the specified $Value as the new value of the specified - # variable $Name, then return. - - $successMessage = $localizedData.EnvVarUpdated -f $Name, $curVarProperties.$Name, $Value - if ($Value -ceq $curVarProperties.$Name) - { - $successMessage = $localizedData.EnvVarUnchanged -f $Name, $curVarProperties.$Name - } - - if ($PSCmdlet.ShouldProcess($successMessage, $null, $null) -and ($Value -cne $curVarProperties.$Name)) - { - Set-EnvVar -Name $Name -Value $Value - } - - return - } - - # If the control reaches here: the specified variable exists already, it is a path variable and a $Value has been specified to be set. - - # Check if an empty, whitespace or semi-colon only string has been specified. If yes, return unchanged. - $trimmedValue = $Value.Trim(";"," ") - if ([String]::IsNullOrEmpty($trimmedValue)) - { - Write-Log -Message ($localizedData.EnvVarPathUnchanged -f $Name, $curVarProperties.$Name) - - return - } - - - $setValue = $curVarProperties.$Name + ";" - $specifiedPaths = $trimmedValue -split ";" - $currentPaths = $curVarProperties.$Name -split ";" - $varUpdated = $false - - foreach ($specifiedPath in $specifiedPaths) - { - if (FindSubPath -QueryPath $specifiedPath -PathList $currentPaths) - { - # Found this $specifiedPath as one of the $currentPaths, no need to add this again, skip/continue to the next $specifiedPath - - continue - } - - # If the control reached here, we didn't find this $specifiedPath in the $currentPaths, add it - # and mark the environment variable as updated. - - $varUpdated = $true - $setValue += $specifiedPath + ";" - } - - # Remove any extraneous ";" at the end (and potentially start - as a side-effect) of the value to be set - $setValue = $setValue.Trim(";") - - # Set the expected success message - $successMessage = $localizedData.EnvVarPathUnchanged -f $Name, $curVarProperties.$Name - if ($varUpdated) - { - $successMessage = $localizedData.EnvVarPathUpdated -f $Name, $curVarProperties.$Name, $setValue - } - - if ($PSCmdlet.ShouldProcess($successMessage, $null, $null)) - { - # Finally update the existing environment path variable - - Set-EnvVar -Name $Name -Value $setValue - } - } - - # --------------- - # ENSURE = ABSENT - elseif ($Ensure -ieq "Absent") - { - if(($curVarProperties -eq $null) -and ($currentValueFromEnv -eq $null)) - { - # Variable not found, condition is satisfied and there is nothing to set/remove, return - - Write-Log -Message ($localizedData.EnvVarNotFound -f $Name) - - return - } - - if(!$ValueSpecified -or !$Path) - { - # If no $Value specified to be removed, simply remove the environment variable (holds true for both path and non-path variables - # OR - # Regardless of $Value, if the target variable is a non-path variable, simply remove it to meet the absent condition - - $successMessage = $localizedData.EnvVarRemoved -f $Name - - if ($PSCmdlet.ShouldProcess($successMessage, $null, $null)) - { - Remove-EnvVar -Name $Name - } - - return - } - - # If the control reaches here: target variable is an existing environment path-variable and a specified $Value needs be removed from it - - # Check if an empty string or semi-colon only string has been specified as $Value. If yes, return unchanged as we don't need to remove anything. - $trimmedValue = $Value.Trim(";") - if ([String]::IsNullOrEmpty($trimmedValue)) - { - Write-Log -Message ($localizedData.EnvVarPathUnchanged -f $Name, $curVarProperties.$Name) - - return - } - - $finalPath = "" - $specifiedPaths = $trimmedValue -split ";" - $currentPaths = $curVarProperties.$Name -split ";" - $varAltered = $false - - foreach ($subpath in $currentPaths) - { - if (FindSubPath -QueryPath $subpath -PathList $specifiedPaths) - { - # Found this $subpath as one of the $specifiedPaths, skip adding this to the final value/path of this variable - # and mark the variable as altered. - - $varAltered = $true - continue - } - - # If the control reaches here, the current $subpath was not part of the $specifiedPaths (to be removed), - # so keep this $subpath in the finalPath - - $finalPath += $subpath + ";" - } - - # Remove any extraneous ";" at the end (and potentially start - as a side-effect) of the $finalPath - $finalPath = $finalPath.Trim(";") - - - # Set the expected success message - $successMessage = $localizedData.EnvVarPathUnchanged -f $Name, $curVarProperties.$Name - if ($varAltered) - { - $successMessage = $localizedData.EnvVarPathUpdated -f $Name, $curVarProperties.$Name, $finalPath - - if ([String]::IsNullOrEmpty($finalPath)) - { - $successMessage = $localizedData.EnvVarRemoved -f $Name - } - } - - # Handle WhatIf case and update resource as appropriate - if ($PSCmdlet.ShouldProcess($successMessage, $null, $null)) - { - # Finally, update the environment path-variable - - if ([String]::IsNullOrEmpty($finalPath)) - { - Remove-EnvVar -Name $Name - } - else - { - Set-EnvVar -Name $Name -Value $finalPath - } - - if($err) - { - Write-Log -Message ($localizedData.EnvVarPathRemoveError -f $Value, $Name, $curVarProperties.$Name) - - throw $err - } - } - } -} - - -#------------------------------- -# The Test-TargetResource cmdlet -#------------------------------- -FUNCTION Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [ValidateNotNull()] - [System.String] - $Value, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.Boolean] - $Path = $false - ) - - $ValueSpecified = $PSBoundParameters.ContainsKey("Value") - $curVarProperties = GetItemProperty $EnvVarRegPathMachine -Name $Name -Expand:(-not $Path) -ErrorAction SilentlyContinue - $currentValueFromEnv = GetEnvironmentVariable -Name $name -Target $EnvironmentVariableTarget.Process - - # ---------------- - # ENSURE = PRESENT - if ($Ensure -ieq "Present") - { - if (($curVarProperties -eq $null) -or (($currentValueFromEnv -eq $null) -and ($curVarProperties.$Name -ne [string]::Empty)) ) - { - # Variable not found, return failure - - Write-Verbose ($localizedData.EnvVarNotFound -f $Name) - - return $false - } - - if (!$ValueSpecified) - { - # No value has been specified for test, so the existence of the variable means success - - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $true - } - - if (!$Path) - { - # For this non-path variable, make sure that the specified $Value matches the current value. - # Success if it matches, failure otherwise - - if ($Value -ceq $curVarProperties.$Name) - { - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $true - } - else - { - Write-Verbose ($localizedData.EnvVarFoundWithMisMatchingValue -f $Name, $curVarProperties.$Name, $Value) - - return $false - } - } - - # If the control reaches here, the expected environment variable exists, it is a path variable and a $Value is specified to test against - - if (FindPath -ExistingPaths $curVarProperties.$Name -QueryPaths $Value -FindCriteria All) - { - # The specified path was completely present in the existing environment variable, return success - - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $true - } - - # If the control reached here some part of the specified path ($Value) was not found in the existing variable, return failure - - Write-Verbose ($localizedData.EnvVarFoundWithMisMatchingValue -f $Name, $curVarProperties.$Name, $Value) - - return $false - } - - # --------------- - # ENSURE = ABSENT - elseif ($Ensure -eq "Absent") - { - if(($curVarProperties -eq $null) -and ($currentValueFromEnv -eq $null)) - { - # Variable not found (path/non-path and $Value both do not matter then), return success - - Write-Verbose ($localizedData.EnvVarNotFound -f $Name) - - return $true - } - - if (!$ValueSpecified) - { - # Given no value has been specified for test, the mere existence of the variable fails the test - - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $false - } - - # If the control reaches here: the variable exists and a value has been specified to test against it - - if (!$Path) - { - # For this non-path variable, make sure that the specified value doesn't match the current value - # Success if it doesn't match, failure otherwise - - if ($Value -cne $curVarProperties.$Name) - { - Write-Verbose ($localizedData.EnvVarFoundWithMisMatchingValue -f $Name, $curVarProperties.$Name, $Value) - - return $true - } - else - { - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $false - } - } - - # If the control reaches here: the variable exists, it is a path variable, and a value has been specified to test against it - - if (FindPath -ExistingPaths $curVarProperties.$Name -QueryPaths $Value -FindCriteria Any) - { - # One of the specified paths in $Value exists in the environment variable path, thus the test fails - - Write-Verbose ($localizedData.EnvVarFound -f $Name, $curVarProperties.$Name) - - return $false - } - - # If the control reached here, none of the specified paths were found in the existing path-variable, return success - - Write-Verbose ($localizedData.EnvVarFoundWithMisMatchingValue -f $Name, $curVarProperties.$Name, $Value) - - return $true - } -} - - -#---------------------------------------- -# Utility to write WhatIf or Verbose logs -#---------------------------------------- -FUNCTION Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - - -#----------------------------------- -# Utility to match environment paths -#----------------------------------- -FUNCTION FindPath -{ - param - ( - [System.String] - $ExistingPaths, - - [System.String] - $QueryPaths, - - [parameter(Mandatory = $true)] - [ValidateSet("Any", "All")] - [System.String] - $FindCriteria - ) - - $existingPathList = $ExistingPaths -split ";" - $queryPathList = $QueryPaths -split ";" - - switch ($FindCriteria) - { - "Any" - { - foreach ($queryPath in $queryPathList) - { - if (FindSubPath -QueryPath $queryPath -PathList $existingPathList) - { - # Found this $queryPath in the existing paths, return $true - return $true - } - } - - # If the control reached here, none of the $QueryPaths were found as part of the $ExistingPaths, return $false - return $false - } - - "All" - { - foreach ($queryPath in $queryPathList) - { - $found = $false - if($queryPath) - { - if (!(FindSubPath -QueryPath $queryPath -PathList $existingPathList)) - { - # The current $queryPath wasn't found in any of the $existingPathList, return failure - return $false - } - } - } - - # If the control reached here, all of the $QueryPaths were found as part of the $ExistingPaths, return $true - return $true - } - } -} - - -#--------------------------------------- -# Utility to search a path in a pathlist -#--------------------------------------- -FUNCTION FindSubPath -{ - param - ( - [System.String] - $QueryPath, - - [String[]] - $PathList - ) - - foreach ($path in $PathList) - { - if($QueryPath -ieq $path) - { - # If the query path matches any of the paths in $PathList, return $true - return $true - } - } - - return $false -} - -#--------------------------------------------------------------- -# Utility to get item property without expanding it if necessary -#--------------------------------------------------------------- -FUNCTION GetItemProperty -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path, - - [ValidateNotNull()] - [System.String] - $Name, - - [switch] - $Expand = $false - ) - - if ($Expand) - { - return (Get-ItemProperty $EnvVarRegPathMachine -Name $Name -ErrorAction SilentlyContinue) - } - else - { - if (!(Test-Path -Path $Path)) - { - return $null; - } - - $PathTokens = $Path.Split('\',[System.StringSplitOptions]::RemoveEmptyEntries) - $Division = $PathTokens[0].Replace(':', '') - $Entry = $PathTokens[1..($PathTokens.Count-1)] -join '\' - - # Since the target registry path coming to this function is hardcoded for local machine - $Hive = [Microsoft.Win32.Registry]::LocalMachine - - $NoteProperties = @{} - try - { - $Key = $Hive.OpenSubKey($Entry) - - $ValueNames = $Key.GetValueNames() - if ($ValueNames -inotcontains $Name) - { - return $null - } - - [string] $Value = $Key.GetValue($Name, $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames) - $NoteProperties.Add($Name, $Value) - } - finally - { - if ($key) - { - $key.Close() - } - } - - [System.Management.Automation.PSObject] $PropertyResults = New-Object -TypeName System.Management.Automation.PSObject -Property $NoteProperties - - return $PropertyResults - } -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_EnvironmentResource/MSFT_EnvironmentResource.schema.mof deleted file mode 100644 index f83f0f20626347d2d026d564f124136791a12854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmb7>%W48a5Jm4=$Uh9TiXalV$tnpEM0}70T}Y5<1{F*z_Lv~SUsq2xj!qO8GBn*? zbx+mpn(gLB1@-i-sXpcTI!d%)pJ*nhTg9rVth=yc6;)ECDvAj@r!Tmbny}y8P5naj zhwLKo7IjLA7xe*Y-G+x=ks5lV+PnG}xL0^jr6u)-oFm<{T5vU(r{Fo!smi+ig(!jS$y^Lp(VB3$C!RwAOpxnf3dFAhPVt&dj^>yzg(G-Rr9=B#}Z4lbB_z zV6&Ztg*4}5i1Voim52sco$gae@N)F?I3p$)Ifog}R3e0Olwq3tq&beUmpv5YC)kei zdaAH=Pq&48gfYmtCN!Xtqh_q|mR;XBSE=ctlF40^M$oPq#K~rwBpkL0W-croU%}07 z7QP*9WfU%t&;Qo{QTT9_{jCr=%exBR&x(WPoC0>-T;x=ul6!o|`+gY89%cSz>NF>X z&#b#u)3zZT$5G317#--PzUhZJr_h5weBoLT*J@CY1>S~F2w%A_ImdYdF;Y)+EOm8a zh!i`R^*pneGqVFN2Lrmg1Wzp$oR8$v$M?GUPMhAxdJ-inOIk}YdIa6vWs&*4%<7Iu zgwz~=Ew}C)0#RloZh4M^R3z>Z_BNfV$iukO_`s-_s`}A=o8~YzXGq8j+*i6P=mG2% zyc>6%6csl7Y;l>r_`&<7a8X>%i$|&p>pzS~E{jR`)0x7sicWma$K83ni>Go5jo}tTJZ_HXd-U@XHH+&+|ROe>UHjx%!;%36wb&$l(l5Bb>Qn zd=RBVmd}W4aUPa|<(V9HTP0PYglw zD}Tf|i(iDR>=MndQOi$_qgwLq1ToG!wx@{miq*d6yup9D?>mk{bNk$$zmn7|{iyRq zvzf=zEG>;Ywx4Sl)Nq^`FOI5?GFgSkRd2DbFt$6=%C(yZ3Liggw%_lywvM(E$10lB z)f8EAGzURXYv$c5e|#&pW3}V;`IR5Kz11r0IE(daL*dP5IR9oOJ+;cylCulfBv`Ge z9>vGk+vpT)l?PzZ)nqUx;mY)Kl=DAyW4qz14901JH!6=JPfKoAxBHsg(qDI|cf4l0 z#pE8m2N!r#3xUpd-SRuztA7>T;rh?iYP6A_?C<-o&L^);IxC7@bhiIr={@$dxR5wy zspA~`ZpMq&wx4})@22PP4fC8~G%=`;>De~>E6cgUQ9Mri&3AHfzZG&{(%w|{a$o#= ze793W7?1FtvFTZGr0(XyNJ~5<=q^9m&%O9jzSVm-eJ7TC^mjeQ+xy*poZc^5{{imh B% - -# A global variable that contains localized messages. -data LocalizedData -{ -# culture="en-US" -ConvertFrom-StringData @' -GroupWithName=Group: {0} -RemoveOperation=Remove -AddOperation=Add -SetOperation=Set -GroupCreated=Group {0} created successfully. -GroupUpdated=Group {0} properties updated successfully. -GroupRemoved=Group {0} removed successfully. -NoConfigurationRequired=Group {0} exists on this node with the desired properties. No action required. -NoConfigurationRequiredGroupDoesNotExist=Group {0} does not exist on this node. No action required. -CouldNotFindPrincipal=Could not find a principal with the provided name [{0}] -MembersAndIncludeExcludeConflict=The {0} and {1} and/or {2} parameters conflict. The {0} parameter should not be used in any combination with the {1} and {2} parameters. -MembersIsNull=The Members parameter value is null. The {0} parameter must be provided if neither {1} nor {2} is provided. -MembersIsEmpty=The Members parameter is empty. At least one group member must be provided. -MemberNotValid=The group member does not exist or cannot be resolved: {0}. -IncludeAndExcludeConflict=The principal {0} is included in both {1} and {2} parameter values. The same principal must not be included in both {1} and {2} parameter values. -IncludeAndExcludeAreEmpty=The MembersToInclude and MembersToExclude are either both null or empty. At least one member must be specified in one of these parameters" -InvalidGroupName=The name {0} cannot be used. Names may not consist entirely of periods and/or spaces, or contain these characters: {1} -GroupExists=A group with the name {0} exists. -GroupDoesNotExist=A group with the name {0} does not exist. -PropertyMismatch=The value of the {0} property is expected to be {1} but it is {2}. -MembersNumberMismatch=Property {0}. The number of provided unique group members {1} is different from the number of actual group members {2}. -MembersMemberMismatch=At least one member {0} of the provided {1} parameter does not have a match in the existing group {2}. -MemberToExcludeMatch=At least one member {0} of the provided {1} parameter has a match in the existing group {2}. -ResolvingLocalAccount=Resolving {0} as a local account. -ResolvingDomainAccount=Resolving {0} in the {1} domain. -ResolvingDomainAccountWithTrust=Resolving {0} with domain trust. -DomainCredentialsRequired=Credentials are required to resolve the domain account {0}. -UnableToResolveAccount=Unable to resolve account '{0}'. Failed with message: {1} (error code={2}) -'@ -} - -Import-Module "$PSScriptRoot\..\RunAsHelper.psm1" - -Import-LocalizedData LocalizedData -FileName MSFT_GroupResource.strings.psd1 - -if (-not (IsNanoServer)) -{ - Add-Type -AssemblyName 'System.DirectoryServices.AccountManagement' -} - -<# -.Synopsis -The Get-TargetResource cmdlet. -#> -function Get-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [System.Management.Automation.PSCredential] - $Credential = $null - ) - - if (IsNanoServer) - { - return Get-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - return Get-TargetResourceOnFullSKU @PSBoundParameters - } - -} - -<# -.Synopsis -The Set-TargetResource cmdlet. -#> -function Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - if (IsNanoServer) - { - Set-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - Set-TargetResourceOnFullSKU @PSBoundParameters - } -} - -<# -.Synopsis -The Test-TargetResource cmdlet is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - if (IsNanoServer) - { - return Test-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - return Test-TargetResourceOnFullSKU @PSBoundParameters - } -} - -<# -.Synopsis -The Get-TargetResource cmdlet for Full SKU images. -#> -function Get-TargetResourceOnFullSKU -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [System.Management.Automation.PSCredential] - $Credential = $null - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - # store disposable objects in a list for cleanup later. - # This is needed for the case where utility functions need to create - # disposable objects (Principal and PrincipalContext) and the - # object's life time is longer than the function. The $disposables - # collection is passed to these functions for storing the disposable objects - # and this function disposes the contents prior to returning. - # See references to DisposeAll for details. - $disposables = New-Object System.Collections.ArrayList - - # hash table of scope to PrincipalContext. This is used for - # cases where the group membership contains entries that span the machine - # and one or more domains. The hashtable's key is the machine or domain - # name (scope) while the value is the PrincipalContext to use to resolve accounts - # within the named scope. - $principalContexts = @{} - - try - { - [System.DirectoryServices.AccountManagement.GroupPrincipal] $group = GetGroup -groupName $GroupName -principalContexts $principalContexts -disposables $disposables - if($group -ne $null) - { - $null = $disposables.Add($group) - - # The group is found. Enumerate all group members. - $members = [String[]]@(EnumerateMembersOnFullSKU -Group $group -principalContexts $principalContexts -disposables $disposables -credential $Credential) - - # Return all group properties and Ensure="Present". - $returnValue = @{ - GroupName = $group.Name; - Ensure = "Present"; - Description = $group.Description; - Members = [System.String[]] $members; - } - - return $returnValue - } - - # The group is not found. Return Ensure=Absent. - return @{ - GroupName = $GroupName; - Ensure = "Absent"; - } - } - finally - { - DisposeAll $disposables - } -} - -<# -.Synopsis -The Set-TargetResource cmdlet for Full SKU images. -#> -function Set-TargetResourceOnFullSKU -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - # store disposable objects in a list for cleanup later. - # This is needed for the case where utility functions need to create - # disposable objects (Principal and PrincipalContext) and the - # object's life time is longer than the function. The $disposables - # collection is passed to these functions for storing the disposable objects - # and this function disposes the contents prior to returning. - # See references to DisposeAll for details. - $disposables = New-Object System.Collections.ArrayList - - # hash table of scope to PrincipalContext. This is used for - # cases where the group membership contains entries that span the machine - # and one or more domains. The hashtable's key is the machine or domain - # name (scope) while the value is the PrincipalContext to use to resolve accounts - # within the named scope. - $principalContexts = @{} - - try - { - # Try to find a group by its name. - [System.DirectoryServices.AccountManagement.GroupPrincipal] $group = GetGroup -groupName $GroupName -principalContexts $principalContexts -disposables $disposables - [bool] $groupExists = $false - - if ($group -ne $null) - { - $groupExists = $true - } - - if($Ensure -eq "Present") - { - [System.DirectoryServices.AccountManagement.Principal[]] $membersToIncludePrincipals = $null - [System.DirectoryServices.AccountManagement.Principal[]] $membersToExcludePrincipals = $null - - if ($group -ne $null) - { - $null = $disposables.Add($group) - } - - # Ensure is set to "Present". - - [bool] $whatIfShouldProcess = $true - [bool] $saveChanges = $false - - if(-not $groupExists) - { - # A group does not exist. Check WhatIf for adding a group. - $whatIfShouldProcess = $pscmdlet.ShouldProcess(($LocalizedData.GroupWithName -f $GroupName), $LocalizedData.AddOperation) - } - else - { - # Check WhatIf for setting a group. - $whatIfShouldProcess = $pscmdlet.ShouldProcess(($LocalizedData.GroupWithName -f $GroupName), $LocalizedData.SetOperation) - } - - if($whatIfShouldProcess) - { - if(-not $groupExists) - { - # NOTE: The PrincipalContext for the local machine is populated above in the call to GetGroup - $localPrincipalContext = $principalContexts[$env:COMPUTERNAME] - - # The group with the provided name does not exist. Add a new group. - $group = New-Object System.DirectoryServices.AccountManagement.GroupPrincipal($localPrincipalContext) - $null = $disposables.Add($group) - - $group.Name = $GroupName - $saveChanges = $true - } - - # Set group properties. - - if($PSBoundParameters.ContainsKey('Description') -and ((-not $groupExists) -or ($Description -ne $group.Description))) - { - $group.Description = $Description - $saveChanges = $true - } - - # NOTE: Group members can be updated in two ways.. - # 1: Supplying the Members parameter - this causes the membership to be replaced with the members defined in Members. - # NOTE: If Members is empty, the group membership is cleared. - # 2: Providing MembersToInclude and/or MembersToExclude - this adds/removes members from the list. - # If Members is mutually exclusive with MembersToInclude and MembersToExclude - # If Members is not defined then MembersToInclude or MembersToExclude must contain at least one entry. - - if($PSBoundParameters.ContainsKey('Members')) - { - if($PSBoundParameters.ContainsKey('MembersToInclude') -or $PSBoundParameters.ContainsKey('MembersToExclude')) - { - # If Members are provided, Include and Exclude are not allowed. - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersPlusIncludeOrExcludeConflict" -ErrorMessage ($LocalizedData.MembersAndIncludeExcludeConflict -f "Members","MembersToInclude","MembersToExclude") - } - - if($Members -eq $null) - { - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersIsNull" -ErrorMessage ($LocalizedData.MembersIsNull -f "Members","MembersToInclude","MembersToExclude") - } - - if ($Members.Count -eq 0) - { - $group.Members.Clear() - $saveChanges = $true - } - else - { - # Remove duplicate names as strings. - $Members = [String[]]@(RemoveDuplicates -Members $Members) - - # Resolve the names to actual principal objects. - [System.DirectoryServices.AccountManagement.Principal[]]$expectedPrincipals = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $Members - - if ($expectedPrincipals.Length -gt 0) - { - $group.Members.Clear() - # Set the contents of the group - if ((AddGroupMembers -Group $group -Principals $expectedPrincipals) -eq $true) - { - $saveChanges = $true - } - } - else - { - #ISSUE: Is an empty $Members parameter valid? - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_MembersEmpty" -ErrorMessage ($LocalizedData.MembersIsEmpty) - } - } - } - else - { - [System.DirectoryServices.AccountManagement.Principal[]] $membersToIncludePrincipals = $null - [System.DirectoryServices.AccountManagement.Principal[]] $membersToExcludePrincipals = $null - - if($PSBoundParameters.ContainsKey('MembersToInclude')) - { - $MembersToInclude = [String[]]@(RemoveDuplicates -Members $MembersToInclude) - - # Resolve the names to actual principal objects. - $membersToIncludePrincipals = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $MembersToInclude - } - - if($PSBoundParameters.ContainsKey('MembersToExclude')) - { - $MembersToExclude = [String[]]@(RemoveDuplicates -Members $MembersToExclude) - - # Resolve the names to actual principal objects. - $membersToExcludePrincipals = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $MembersToExclude - } - - if($membersToIncludePrincipals -ne $null -and $membersToExcludePrincipals -ne $null) - { - # Both MembersToInclude and MembersToExlude were provided. Check if they have common principals. - foreach($includePrincipal in $membersToIncludePrincipals) - { - foreach($excludePrincipal in $membersToExcludePrincipals) - { - if($includePrincipal -eq $excludePrincipal) - { - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_IncludeAndExcludeConflict" -ErrorMessage ($LocalizedData.IncludeAndExcludeConflict -f $includePrincipal.SamAccountName,"MembersToInclude", "MembersToExclude") - } - } - } - if ($membersToIncludePrincipals.Length -eq 0 -and $membersToExcludePrincipals.Length -eq 0) - { - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_EmptyIncludeAndExclude" -ErrorMessage ($LocalizedData.IncludeAndExcludeAreEmpty) - } - } - - - if ((RemoveGroupMembers -Group $group -Principals $membersToExcludePrincipals) -eq $true) - { - $saveChanges = $true - } - - if ((AddGroupMembers -Group $group -Principals $membersToIncludePrincipals) -eq $true) - { - $saveChanges = $true - } - } - - if($saveChanges) - { - $group.Save() - - # Send an operation success verbose message. - if($groupExists) - { - Write-Verbose -Message ($LocalizedData.GroupUpdated -f $GroupName) - } - else - { - Write-Verbose -Message ($LocalizedData.GroupCreated -f $GroupName) - } - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequired -f $GroupName) - } - } - } - else - { - # Ensure is set to "Absent". - if($groupExists -eq $true) - { - # The group exists. - if($pscmdlet.ShouldProcess(($LocalizedData.GroupWithName -f $GroupName), $LocalizedData.RemoveOperation)) - { - # Remove the group by the provided name. - # NOTE: Don't add to $disposables since Delete also disposes. - $group.Delete() - Write-Verbose -Message ($LocalizedData.GroupRemoved -f $GroupName) - } - else - { - $null = $disposables.Add($group) - } - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequiredGroupDoesNotExist -f $GroupName) - } - } - } - finally - { - DisposeAll $disposables - } -} - -<# -.Synopsis -The Test-TargetResource cmdlet for Full SKU images is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResourceOnFullSKU -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - # store disposable objects in a list for cleanup later. - # This is needed for the case where utility functions need to create - # disposable objects (Principal and PrincipalContext) and the - # object's life time is longer than the function. The $disposables - # collection is passed to these functions for storing the disposable objects - # and this function disposes the contents prior to returning. - # See references to DisposeAll for details. - $disposables = New-Object System.Collections.ArrayList - - # hash table of scope to PrincipalContext. This is used for - # cases where the group membership contains entries that span the machine - # and one or more domains. The hashtable's key is the machine or domain - # name (scope) while the value is the PrincipalContext to use to resolve accounts - # within the named scope. - $principalContexts = @{} - - try - { - [System.DirectoryServices.AccountManagement.GroupPrincipal] $group = GetGroup -groupName $GroupName -principalContexts $principalContexts -disposables $disposables - if($group -eq $null) - { - # A group with the provided name does not exist. - Write-Log -Message ($LocalizedData.GroupDoesNotExist -f $GroupName) - - if($Ensure -eq "Absent") - { - return $true - } - else - { - return $false - } - } - $null = $disposables.Add($group) - - # A group with the provided name exists. - Write-Log -Message ($LocalizedData.GroupExists -f $GroupName) - - # Validate separate properties. - if($Ensure -eq "Absent") - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Ensure", "Absent", "Present") - return $false # The Ensure property does not match. Return $false - } - - if($PSBoundParameters.ContainsKey('GroupName') -and $GroupName -ne $group.SamAccountName -and $GroupName -ne $group.Sid.Value) - { - return $false # The Name property does not match. Return $false - } - - if($PSBoundParameters.ContainsKey('Description') -and $Description -ne $group.Description) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Description", $Description, $group.Description) - return $false # The Description property does not match. Return $false - } - - if($PSBoundParameters.ContainsKey('Members')) - { - if($PSBoundParameters.ContainsKey('MembersToInclude') -or $PSBoundParameters.ContainsKey('MembersToExclude')) - { - # If Members are provided, Include and Exclude are not allowed. - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersPlusIncludeOrExcludeConflict" -ErrorMessage ($LocalizedData.MembersAndIncludeExcludeConflict -f "Members","MembersToInclude","MembersToExclude") - } - - if($Members -eq $null) - { - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersIsNull" -ErrorMessage ($LocalizedData.MembersIsNull -f "Members","MembersToInclude","MembersToExclude") - } - - if ($Members.Count -eq 0) - { - if ($group.Members.Count -eq 0) - { - return $true - } - else - { - return $false - } - } - else - { - # Remove duplicate names as strings. - $Members = [String[]]@(RemoveDuplicates -Members $Members) - - # Resolve the names to actual principal objects. - [System.DirectoryServices.AccountManagement.Principal[]] $expectedMembers = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $Members - - if($expectedMembers.Length -ne $group.Members.Count) - { - Write-Log -Message ($LocalizedData.MembersNumberMismatch -f "Members", $expectedMembers.Length, $group.Members.Count) - return $false; # The number of provided unique group members is different from the number of actual group members. Return $false. - } - - [System.DirectoryServices.AccountManagement.Principal[]] $actualMembers = ResolveGroupMembersToPrincipals -group $group -principalContexts $principalContexts -disposables $disposables -credential $Credential - - # Compare two members lists. - foreach ($expectedMember in $expectedMembers) - { - $matchFound = $false - - foreach($groupMember in $actualMembers) - { - if($expectedMember -eq $groupMember) - { - $matchFound = $true - break; - } - } - - if(!$matchFound) - { - Write-Log -Message ($LocalizedData.MembersMemberMismatch -f $expectedMember.SamAccountName, "Members", $group.SamAccountName) - return $false # At least one element does not have a match. Return $false - } - } - } - } - else - { - [System.DirectoryServices.AccountManagement.Principal[]] $actualMembers = ResolveGroupMembersToPrincipals -group $group -principalContexts $principalContexts -disposables $disposables -credential $Credential - - if($PSBoundParameters.ContainsKey('MembersToInclude')) - { - $MembersToInclude = [String[]]@(RemoveDuplicates -Members $MembersToInclude) - - # Resolve the names to actual principal objects. - [System.DirectoryServices.AccountManagement.Principal[]] $membersToIncludePrincipals = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $MembersToInclude - - # Check if every element in $membersToIncludePrincipals has a match in $group.Members. - # Compare two members lists. - foreach($expectedMember in $membersToIncludePrincipals) - { - $matchFound = $false - - foreach($groupMember in $actualMembers) - { - if($expectedMember -eq $groupMember) - { - $matchFound = $true - break - } - } - - if(!$matchFound) - { - Write-Log -Message ($LocalizedData.MembersMemberMismatch -f $expectedMember.SamAccountName, "MembersToInclude", $group.SamAccountName) - return $false # At least one element from $MembersToInclude does not have a match. Return $false - } - } - } - - if($PSBoundParameters.ContainsKey('MembersToExclude')) - { - $MembersToExclude = [String[]]@(RemoveDuplicates -Members $MembersToExclude); - - # Resolve the names to actual principal objects. - [System.DirectoryServices.AccountManagement.Principal[]] $membersToExcludePrincipals = ResolveNamesToPrincipals -principalContexts $principalContexts -Disposables $disposables -credential $Credential -ObjectNames $MembersToExclude - - foreach($expectedMember in $membersToExcludePrincipals) - { - foreach($groupMember in $actualMembers) - { - if($expectedMember -eq $groupMember) - { - Write-Log -Message ($LocalizedData.MemberToExcludeMatch -f $expectedMember.SamAccountName, "MembersToExclude", $group.SamAccountName) - return $false # At least one element from $MembersToExclude has a match. Return $false - } - } - } - } - } - } - finally - { - DisposeAll $disposables - } - - # All properties match. Return $true. - return $true; -} - -<# -.Synopsis -The Get-TargetResource cmdlet for Nano Server images. -#> -function Get-TargetResourceOnNanoServer -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [System.Management.Automation.PSCredential] - $Credential = $null - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - try - { - [Microsoft.PowerShell.Commands.LocalGroup] $group = Get-LocalGroup -Name $GroupName -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.Reason -eq 'GroupNotFoundException') - { - # The group is not found. Return Ensure=Absent. - return @{ - GroupName = $GroupName; - Ensure = "Absent"; - } - } - Throw-TerminatingError -ErrorRecord $_ - } - - # The group is found. Enumerate all group members. - $members = [String[]](EnumerateMembersOnNanoServer -Group $group) - - # Return all group properties and Ensure="Present". - $returnValue = @{ - GroupName = $group.Name; - Ensure = "Present"; - Description = $group.Description; - Members = [System.String[]] $members; - } - - return $returnValue -} - -<# -.Synopsis -The Set-TargetResource cmdlet for Nano Server images. -#> -function Set-TargetResourceOnNanoServer -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - # Try to find a group by its name. - [bool] $groupExists = $false - try - { - [Microsoft.PowerShell.Commands.LocalGroup] $group = Get-LocalGroup -Name $GroupName -ErrorAction Stop - $groupExists = $true - } - catch [System.Exception] - { - if ($_.CategoryInfo.Reason -eq 'GroupNotFoundException') - { - # A group with the provided name does not exist. - Write-Log -Message ($LocalizedData.GroupDoesNotExist -f $GroupName) - } - else - { - Throw-TerminatingError -ErrorRecord $_ - } - } - - if($Ensure -eq "Present") - { - # Ensure is set to "Present". - if(-not $groupExists) - { - # The group with the provided name does not exist. Add a new group. - New-LocalGroup -Name $GroupName - Write-Verbose -Message ($LocalizedData.GroupCreated -f $GroupName) - } - - # Set group properties. - - if($PSBoundParameters.ContainsKey('Description') -and ((-not $groupExists) -or ($Description -ne $group.Description))) - { - Set-LocalGroup -Name $GroupName -Description $Description - } - - # NOTE: Group members can be updated in two ways.. - # 1: Supplying the Members parameter - this causes the membership to be replaced with the members defined in Members. - # NOTE: If Members is empty, the group membership is cleared. - # 2: Providing MembersToInclude and/or MembersToExclude - this adds/removes members from the list. - # If Members is mutually exclusive with MembersToInclude and MembersToExclude - # If Members is not defined then MembersToInclude or MembersToExclude must contain at least one entry. - - if($PSBoundParameters.ContainsKey('Members')) - { - if($PSBoundParameters.ContainsKey('MembersToInclude') -or $PSBoundParameters.ContainsKey('MembersToExclude')) - { - # If Members are provided, Include and Exclude are not allowed. - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersPlusIncludeOrExcludeConflict" -ErrorMessage ($LocalizedData.MembersAndIncludeExcludeConflict -f "Members","MembersToInclude","MembersToExclude") - } - - if($Members -eq $null) - { - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersIsNull" -ErrorMessage ($LocalizedData.MembersIsNull -f "Members","MembersToInclude","MembersToExclude") - } - - # Remove duplicate names as strings. - $ExpectedMembers = [String[]]@(RemoveDuplicates -Members $Members) - - if ($ExpectedMembers.Length -gt 0) - { - # Get current members - $CurrentMembers = EnumerateMembersOnNanoServer -Group $group - - # Remove the current members of the group - Remove-LocalGroupMember -Group $GroupName -Member $CurrentMembers - - # Add the list of expected members to the group - Add-LocalGroupMember -Group $GroupName -Member $ExpectedMembers - } - else - { - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_MembersEmpty" -ErrorMessage ($LocalizedData.MembersIsEmpty) - } - } - else - { - if($PSBoundParameters.ContainsKey('MembersToInclude')) - { - $MembersToInclude = [String[]]@(RemoveDuplicates -Members $MembersToInclude) - } - - if($PSBoundParameters.ContainsKey('MembersToExclude')) - { - $MembersToExclude = [String[]]@(RemoveDuplicates -Members $MembersToExclude) - } - - if($PSBoundParameters.ContainsKey('MembersToInclude') -and $PSBoundParameters.ContainsKey('MembersToExclude')) - { - # Both MembersToInclude and MembersToExlude were provided. Check if they have common principals. - foreach($includeMember in $MembersToInclude) - { - foreach($excludeMember in $MembersToExclude) - { - if($includeMember -eq $excludeMember) - { - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_IncludeAndExcludeConflict" -ErrorMessage ($LocalizedData.IncludeAndExcludeConflict -f $includeMember ,"MembersToInclude", "MembersToExclude") - } - } - } - if ($MembersToInclude.Length -eq 0 -and $MembersToExclude.Length -eq 0) - { - ThrowInvalidArgumentError -ErrorId "GroupSetCmdlet_EmptyIncludeAndExclude" -ErrorMessage ($LocalizedData.IncludeAndExcludeAreEmpty) - } - } - - if($PSBoundParameters.ContainsKey('MembersToInclude')) - { - foreach($includeMember in $MembersToInclude) - { - try - { - Add-LocalGroupMember -Group $GroupName -Member $includeMember -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.Reason -ne 'MemberExistsException') - { - throw $_.Exception - } - } - } - } - - if($PSBoundParameters.ContainsKey('MembersToExclude')) - { - foreach($excludeMember in $MembersToExclude) - { - try - { - Remove-LocalGroupMember -Group $GroupName -Member $excludeMember -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.Reason -ne 'MemberNotFoundException') - { - Throw-TerminatingError -ErrorRecord $_ - } - } - } - } - } - } - else - { - # Ensure is set to "Absent". - if($groupExists -eq $true) - { - # The group exists. Remove the group by the provided name. - Remove-LocalGroup -Name $GroupName - Write-Verbose -Message ($LocalizedData.GroupRemoved -f $GroupName) - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequiredGroupDoesNotExist -f $GroupName) - } - } -} - -<# -.Synopsis -The Test-TargetResource cmdlet for Nano Server images is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResourceOnNanoServer -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $Description, - - [System.String[]] - $Members, - - [System.String[]] - $MembersToInclude, - - [System.String[]] - $MembersToExclude, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential - ) - - Set-StrictMode -Version Latest - - ValidateGroupName -GroupName $GroupName - - try - { - [Microsoft.PowerShell.Commands.LocalGroup] $group = Get-LocalGroup -Name $GroupName -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.Reason -eq 'GroupNotFoundException') - { - # A group with the provided name does not exist. - Write-Log -Message ($LocalizedData.GroupDoesNotExist -f $GroupName) - - if($Ensure -eq "Absent") - { - return $true - } - else - { - return $false - } - } - Throw-TerminatingError -ErrorRecord $_ - } - - # A group with the provided name exists. - Write-Log -Message ($LocalizedData.GroupExists -f $GroupName) - - # Validate separate properties. - if($Ensure -eq "Absent") - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Ensure", "Absent", "Present") - return $false # The Ensure property does not match. Return $false - } - - if($PSBoundParameters.ContainsKey('Description') -and $Description -ne $group.Description) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Description", $Description, $group.Description) - return $false # The Description property does not match. Return $false - } - - if($PSBoundParameters.ContainsKey('Members')) - { - Write-Verbose "Testing members..." - if($PSBoundParameters.ContainsKey('MembersToInclude') -or $PSBoundParameters.ContainsKey('MembersToExclude')) - { - # If Members are provided, Include and Exclude are not allowed. - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersPlusIncludeOrExcludeConflict" -ErrorMessage ($LocalizedData.MembersAndIncludeExcludeConflict -f "Members","MembersToInclude","MembersToExclude") - } - - if($Members -eq $null) - { - ThrowInvalidArgumentError -ErrorId "GroupTestCmdlet_MembersIsNull" -ErrorMessage ($LocalizedData.MembersIsNull -f "Members","MembersToInclude","MembersToExclude") - } - - # Remove duplicate names as strings. - $ExpectedMembers = [String[]]@(RemoveDuplicates -Members $Members) - - # Get current members - $CurrentMembers = EnumerateMembersOnNanoServer -Group $group - - if($ExpectedMembers.Length -ne $CurrentMembers.Length) - { - Write-Log -Message ($LocalizedData.MembersNumberMismatch -f "Members", $ExpectedMembers.Length, $CurrentMembers.Length) - return $false; # The number of provided unique group members is different from the number of actual group members. Return $false. - } - - # Compare two members lists. - foreach ($ExpectedMember in $ExpectedMembers) - { - $matchFound = $false - - foreach($groupMember in $CurrentMembers) - { - if($ExpectedMember -eq $groupMember) - { - $matchFound = $true - break; - } - } - - if(-not $matchFound) - { - Write-Log -Message ($LocalizedData.MembersMemberMismatch -f $expectedMember, "Members", $group.Name) - return $false # At least one element does not have a match. Return $false - } - } - } - else - { - # Get current members - $CurrentMembers = EnumerateMembersOnNanoServer -Group $group - - if($PSBoundParameters.ContainsKey('MembersToInclude')) - { - $MembersToInclude = [String[]]@(RemoveDuplicates -Members $MembersToInclude) - - # Check if every element in $membersToIncludePrincipals has a match in $group.Members. - # Compare two members lists. - foreach($expectedMember in $MembersToInclude) - { - $matchFound = $false - - foreach($groupMember in $CurrentMembers) - { - if($expectedMember -eq $groupMember) - { - $matchFound = $true - break - } - } - - if(-not $matchFound) - { - Write-Log -Message ($LocalizedData.MembersMemberMismatch -f $expectedMember, "MembersToInclude", $group.Name) - return $false # At least one element from $MembersToInclude does not have a match. Return $false - } - } - } - - if($PSBoundParameters.ContainsKey('MembersToExclude')) - { - $MembersToExclude = [String[]]@(RemoveDuplicates -Members $MembersToExclude); - - foreach($expectedMember in $MembersToExclude) - { - foreach($groupMember in $CurrentMembers) - { - if($expectedMember -eq $groupMember) - { - Write-Log -Message ($LocalizedData.MemberToExcludeMatch -f $expectedMember, "MembersToExclude", $group.Name) - return $false # At least one element from $MembersToExclude has a match. Return $false - } - } - } - } - } - - # All properties match. Return $true. - return $true; -} - -function RemoveDuplicates -{ - param - ( - [System.String[]] $Members - ) - - Set-StrictMode -Version Latest - - $destIndex = 0; - for([int] $sourceIndex = 0 ; $sourceIndex -lt $Members.Count; $sourceIndex++) - { - $matchFound = $false - for([int] $matchIndex = 0; $matchIndex -lt $destIndex; $matchIndex++) - { - if($Members[$sourceIndex] -eq $Members[$matchIndex]) - { - # A duplicate is found. Discard the duplicate. - $matchFound = $true - continue - } - } - - if(!$matchFound) - { - $Members[$destIndex++] = $Members[$sourceIndex].ToLowerInvariant(); - } - } - - # Create the output array. - $destination = New-Object System.String[] -ArgumentList $destIndex - - # Copy only distinct elements from the original array to the destination array. - [System.Array]::Copy($Members, $destination, $destIndex); - - if ($destIndex -gt 0) - { - return $destination - } - return [System.String[]]@() -} - -function EnumerateMembersOnNanoServer -{ - [OutputType([System.String[]])] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [Microsoft.PowerShell.Commands.LocalGroup] - $Group - ) - - Set-StrictMode -Version Latest - [System.Collections.ArrayList] $members = New-Object System.Collections.ArrayList - - # Get the group members. - $groupmembers = Get-LocalGroupMember -Group $Group - - foreach($member in $groupmembers) - { - if ($member.PrincipalSource -eq "Local") - { - $null = $members.Add($member.Name.Substring($member.Name.IndexOf("\")+1)) - } - else - { - Write-Verbose "$($member.Name) is not a local user (PrincipalSource = $($member.PrincipalSource))" - } - } - - if ($members.Count -gt 0) - { - return $members.ToArray() - } - return ,([System.String[]]@()) -} - -function EnumerateMembersOnFullSKU -{ - [OutputType([System.String[]])] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.DirectoryServices.AccountManagement.GroupPrincipal] - $group, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $principalContexts, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Collections.ArrayList] - $disposables, - - [System.Net.NetworkCredential] - $credential = $null - ) - - Set-StrictMode -Version Latest - [System.Collections.ArrayList] $members = New-Object System.Collections.ArrayList - - # Get the group members as Principal objects. - [System.DirectoryServices.AccountManagement.Principal[]] $principals = ResolveGroupMembersToPrincipals -group $group -principalContexts $principalContexts -disposables $disposables -credential $credential - - foreach($principal in $principals) - { - if($principal.ContextType -eq [System.DirectoryServices.AccountManagement.ContextType]::Domain) - { - # Select only the first part of the full domain name. - [String]$domainName = $principal.Context.Name; - [int] $separatorIndex = $domainName.IndexOf('.') - if ($separatorIndex -ne -1) - { - $domainName = $domainName.Substring(0, $separatorIndex) - } - - if($principal.StructuralObjectClass -eq "computer") - { - $null = $members.Add($domainName+'\'+$principal.Name) - } - else - { - $null = $members.Add($domainName+'\'+$principal.SamAccountName) - } - } - else - { - $null = $members.Add($principal.Name) - } - } - - return $members.ToArray() -} - -<# -.Synopsis - Resolves the members of a group to Principal instances. -#> -function ResolveGroupMembersToPrincipals -{ - [OutputType([System.DirectoryServices.AccountManagement.Principal[]])] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.DirectoryServices.AccountManagement.GroupPrincipal] - $group, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $principalContexts, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Collections.ArrayList] - $disposables, - - [System.Net.NetworkCredential] - $credential = $null - ) - Set-StrictMode -Version latest - - [System.Collections.ArrayList] $principals = New-Object System.Collections.ArrayList - - # NOTE: This logic enumerates the group members using the underlying DirectoryEntry API. - # The reason this is needed is due to the fact that enumerating the group - # members as principal instances causes a resolve to occur. Since there is no - # facility for passing credentials to perform the resolution, any members that - # cannot be resolved using the current user will fail; such as when the DSC - # Group resource runs as system. Dropping down to the underyling API - # allows us to access the account's SID which can then be used to - # resolve the associated principal using explicit credentials. - [System.DirectoryServices.DirectoryEntry] $groupDe = $group.GetUnderlyingObject() - - $enum = $groupDe.Invoke("Members") - foreach ($item in $enum) - { - [string] $scope = $null - [string] $accountName = $null - [string] $machineName = $env:COMPUTERNAME - [System.DirectoryServices.AccountManagement.Principal] $principal = $null - - # extract the objectSid from the underlying DirectoryEntry - [System.DirectoryServices.DirectoryEntry] $entry = New-Object System.DirectoryServices.DirectoryEntry($item) - [byte[]] $sidBytes = $entry.Properties["objectSid"].Value - - $null = $disposables.Add($entry) - - [string[]] $parts = $entry.Path.Split("/") - - if ($parts.Count -eq 4) - { - # parsing WinNT://domainname/accountname - # or WinNT://machinename/accountname - $scope = $parts[2] - $accountName = $parts[3] - } - elseif ($parts.Count -eq 5) - { - # parsing WinNT://domainname/machinename/accountname - $scope = $parts[3] - $accountName = $parts[4] - } - else - { - # the account is stale either becuase it was deleted or - # the machine was moved to a new domain without removing - # the domain members from the group. - # If we consider this a fatal error, the group is no longer - # managable by the DSC resource. Writing a warning allows - # the operation to complete while leaving the stale member in the - # group. - Write-Warning -Message ($LocalizedData.MemberNotValid -f $entry.Path) - continue - } - - - [bool] $isLocalMachine = [System.String]::CompareOrdinal($scope, $machineName) -eq 0 - - $principalContext = GetPrincipalContext -principalContexts $principalContexts -disposables $disposables -scope $scope -credential $credential - - # if local machine qualified, get the PrincipalContext for the local machine - if ($isLocalMachine -eq $true) - { - Write-Verbose -Message ($LocalizedData.ResolvingLocalAccount -f $accountName) - } - # the account is domain qualified - credentials required to resolve it. - elseif ($credential -ne $null -or $principalContext -ne $null) - { - Write-Verbose -Message ($LocalizedData.ResolvingDomainAccount -f $scope, $accountName) - } - else - { - # The provided name is not scoped to the local machine and no credentials were provided. - # This is an unsupported use case; credentials are required to resolve off-box. - ThrowInvalidArgumentError -ErrorId "PrincipalNotFoundNoCredential" -ErrorMessage ($LocalizedData.DomainCredentialsRequired -f $accountName) - } - - # create a sid to enable comparison againt the expected member's sid. - [System.Security.Principal.SecurityIdentifier] $sid = New-Object System.Security.Principal.SecurityIdentifier($sidBytes, 0) - - $principal = ResolveSidToPrincipal -principalContext $principalContext -sid $sid -isLocalMachineQualified $isLocalMachine - $null = $principals.Add($principal) - $null = $disposables.Add($principal) - } - - return $principals.ToArray() -} - -<# -.Synopsis - Resolves an array of object names to Principal instances. -#> -function ResolveNamesToPrincipals -{ - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [String[]] $objectNames, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Collections.ArrayList] $disposables, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $principalContexts, - - [System.Net.NetworkCredential] - $credential = $null - ) - Set-StrictMode -Version Latest - - [System.Collections.ArrayList] $principals = New-Object System.Collections.ArrayList - $keys = @{} - - foreach($objectName in $objectNames) - { - $principal = ResolveNameToPrincipal -principalContexts $principalContexts -credential $credential -disposables $disposables -objectName $objectName - if ($principal -ne $null) - { - [string] $key = $null - # handle duplicate entries - if ($principal.ContextType -eq [System.DirectoryServices.AccountManagement.ContextType]::Domain) - { - $key = $principal.DistinguishedName - } - else - { - $key = $principal.SamAccountName - } - if ($keys.ContainsKey($key) -eq $false) - { - $keys.Add($key, $null) - $null = $principals.Add($principal) - } - } - } - - $keys.Clear() - return $principals.ToArray() -} - -<# -.Synopsis - resolves an object name to a Principal -#> -function ResolveNameToPrincipal -{ - [OutputType([System.DirectoryServices.AccountManagement.Principal])] - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $principalContexts, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $disposables, - - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] $objectName, - - [System.Net.NetworkCredential] - $credential = $null - - ) - Set-StrictMode -Version Latest - - [string] $accountName = $null - - # the scope of the the object name when in the form of scope\name, UPN, or DN - [string] $scope = Parse-Scope -fullName $objectName -accountName ([ref] $accountName) - - # check for an object qualified to the local machine - [bool] $isLocalMachine = IsLocalMachine $scope - - [System.DirectoryServices.AccountManagement.PrincipalContext] $principalContext = $null - [bool] $UseDomainTrust = $false - - # if local machine qualified, get the PrincipalContext for the local machine - if ($isLocalMachine -eq $true) - { - Write-Verbose -Message ($LocalizedData.ResolvingLocalAccount -f $objectName) - } - # the account is domain qualified - credentials provided to resolve it. - elseif ($credential -ne $null) - { - Write-Verbose -Message ($LocalizedData.ResolvingDomainAccount -f $ObjectName, $scope) - } - # no credentials provided to resolve account name, so try with domain trust - else - { - # The provided name is not scoped to the local machine and no credentials were provided. - # If the object is a domain qualified name, we can try to resolve the user with domain trust, if setup. - $UseDomainTrust = $true - Write-Verbose -Message ($LocalizedData.ResolvingDomainAccountWithTrust -f $objectName) - } - - # Get a PrincipalContext to use to resolve the object - $principalContext = GetPrincipalContext -principalContexts $principalContexts -disposables $disposables -scope $scope -credential $credential - - if ($UseDomainTrust) - { - # When using domain trust, we use the object name to resolve. Object name can be in different formats such as a domain - # qualified name, UPN, or a distinguished name for the scope - $account = $objectName - } - else - { - $account = $accountName - } - - try - { - [System.DirectoryServices.AccountManagement.Principal] $principal = [System.DirectoryServices.AccountManagement.Principal]::FindByIdentity($principalContext, $account) - } - catch [System.Runtime.InteropServices.COMException] - { - ThrowInvalidArgumentError -ErrorId "PrincipalNotFound" -ErrorMessage ( $LocalizedData.UnableToResolveAccount -f $objectName, $_.Exception.Message, $_.Exception.HResult ) - } - - if ($principal -eq $null) - { - [string] $errorId = $null - if ($isLocalMachine) - { - $errorId = "PrincipalNotFound_LocalMachine" - } - else - { - $errorId = "PrincipalNotFound_ProvidedCredential" - } - - ThrowInvalidArgumentError -ErrorId $errorId -ErrorMessage ($LocalizedData.CouldNotFindPrincipal -f $objectName) - } - - return $principal -} - -<# -.Synopsis - Resolves a SID to a principal -#> -function ResolveSidToPrincipal -{ - [OutputType([System.DirectoryServices.AccountManagement.Principal])] - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.DirectoryServices.AccountManagement.PrincipalContext] $principalContext, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Security.Principal.SecurityIdentifier] $sid, - - [Parameter(Mandatory = $true)] - [bool] $isLocalMachineQualified - ) - Set-StrictMode -Version Latest - - [string] $sidValue = $Sid.Value - - # Try to find a matching principal. - $principal = [System.DirectoryServices.AccountManagement.Principal]::FindByIdentity($principalContext, [System.DirectoryServices.AccountManagement.IdentityType]::Sid, $sidValue) - - if ($principal -eq $null) - { - [string] $errorId = $null - if ($isLocalMachineQualified) - { - $errorId = "PrincipalNotFound_LocalMachine" - } - else - { - $errorId = "PrincipalNotFound_ProvidedCredential" - } - - ThrowInvalidArgumentError -ErrorId $errorId -ErrorMessage ($LocalizedData.CouldNotFindPrincipal -f $sid.ToString()) - } - - return $principal -} - -<# -.Synopsis - Gets a PrincipalContext to use to resolve an object in the specified $scope - $principalContexts is a hashtable of scope to PrincipalContext. This is used to - cache PrincipalContext instances for cases where it is used multiple times. - disposables is an array of disposable objects. When a new PrincipalContext is - created, it is added to the disposable list as well as the hashtable. - $credential is used when a new PrincipalContext needs to be created with explicit - credentials to a target domain -#> -function GetPrincipalContext -{ - [OutputType([System.DirectoryServices.AccountManagement.PrincipalContext])] - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $principalContexts, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - $disposables, - - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [object] $scope, - - [System.Net.NetworkCredential] - $credential = $null - ) - - # The PrincipalContext to use to resolve the account - [System.DirectoryServices.AccountManagement.PrincipalContext] $principalContext = $null - - # check for an object qualified to the local machine - [bool] $isLocalMachine = [System.String]::Compare($env:COMPUTERNAME, $scope) -eq 0 - - if ($isLocalMachine) - { - # check for a cached PrincipalContext for the local machine. - if ($principalContexts.ContainsKey($env:COMPUTERNAME)) - { - $principalContext = $principalContexts[$env:COMPUTERNAME] - } - else - { - # Create a PrincipalContext for the local machine - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Machine) - - # Cache the PrincipalContext for this scope for subsequent calls. - $principalContexts.Add($env:COMPUTERNAME, $principalContext) - $null = $disposables.Add($principalContext) - } - } - elseif ($principalContexts.ContainsKey($scope)) - { - $principalContext = $principalContexts[$scope] - } - elseif ($credential -ne $null) - { - # Create a PrincipalContext targeing $scope using the network credentials that were passed in. - - $name = [System.String]::Format("{0}\{1}", $credential.Domain, $credential.UserName) - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Domain, $scope, $name, $credential.Password) - - # Cache the PrincipalContext for this scope for subsequent calls. - $principalContexts.Add($scope, $principalContext) - $null = $disposables.Add($principalContext) - } - else - { - # Get a PrincipalContext for the current user in the target domain (even for local System account). - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Domain, $scope) - - # Cache the PrincipalContext for this scope for subsequent calls. - $principalContexts.Add($scope, $principalContext) - $null = $disposables.Add($principalContext) - } - - return $principalContext -} - - -<# -.Synopsis - Adds the entries defined in $Principals from $Group.Members. - Returns $true if the members changed (i.e., members were added); - otherwise, $false if all of the entries in $Principals were already present - in $Group.Members -#>function AddGroupMembers -{ - [OutputType([bool])] - param - ( - [System.DirectoryServices.AccountManagement.GroupPrincipal] $Group, - - [System.DirectoryServices.AccountManagement.Principal[]] $Principals - ) - Set-StrictMode -Version Latest - [bool] $updated = $false - - if ($Principals -ne $null) - { - # Make changes to the group. - foreach($principal in $Principals) - { - if ($group.Members.Contains($principal)) - { - continue - } - $group.Members.Add($principal) - # indicate a change was made to $Group.Members - $updated = $true - } - } - return $updated -} - -<# -.Synopsis - Removes the entries defined in $Principals from $Group.Members. - Returns $true if the members changed (i.e., members were removed); - otherwise, $false if none of the entries in $Principals were present - in $Group.Members -#> -function RemoveGroupMembers -{ - [OutputType([bool])] - param - ( - [System.DirectoryServices.AccountManagement.GroupPrincipal] $Group, - - [System.DirectoryServices.AccountManagement.Principal[]] $Principals - ) - Set-StrictMode -Version Latest - [bool] $updated = $false - - if ($Principals -ne $null) - { - # Make changes to the group. - foreach($principal in $Principals) - { - if ($group.Members.Remove($principal) -eq $true) - { - # indicated a change was made to the members. - $updated = $true - } - } - } - - return $updated -} - -#region Utilities - -<# -.Synopsis - Determines if a scope represents the current machine. -#> -function IsLocalMachine -{ - [OutputType([bool])] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $scope - ) - Set-StrictMode -Version latest - - if ($scope -eq ".") - { - return $true - } - - if ($scope -eq $env:COMPUTERNAME) - { - return $true - } - - if ($scope -eq "localhost") - { - return $true - } - - if ($scope.Contains(".")) - { - if ($scope -eq "127.0.0.1") - { - return $true - } - - # Determine if we have an ip address that matches an ip address on one of the - # network adapters. - # NOTE: This is likely overkill; consider removing it. - $items = @(Get-WmiObject Win32_NetworkAdapterConfiguration) - foreach ($item in $items) - { - if ($item.IPaddress -ne $null) - { - foreach ($addr in $item.IPaddress) - { - if ($addr -eq $scope) - { - return $true - } - } - } - } - } - return $false -} - -<# -.Synopsis - Determines if a specified domain is the same as the domain defined in a PrincipalContext. - This is used to determine if a new connection (PrincipalContext) needs to be created. - -.Notes - This method uses simple string compare and simple parsing to perform the match and - should only be used to determine if a new connection is required since some - comparisons may returned $false due to formatting differences. -#> -function IsSameDomain -{ - [OutputType([bool])] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNull()] - [System.DirectoryServices.AccountManagement.PrincipalContext] $principalContext, - - [Parameter(Mandatory=$true)] - [ValidateNotNull()] - [String] $domain - ) - Set-StrictMode -Version latest - - # Compare against Name of $principalContext - typically the undecorated domain name - [bool] $isSameDomain = [System.String]::Compare($domain, $principalContext.Name, [System.StringComparison]::OrdinalIgnoreCase) -eq 0 - - if ($isSameDomain -eq $false) - { - $dotIndex = $principalContext.ConnectedServer.IndexOf(".") - if ($dotIndex -ne -1) - { - $principalDomain = $principalContext.ConnectedServer.Substring($dotIndex + 1) - $isSameDomain = [System.String]::Compare($domain, $principalDomain, [System.StringComparison]::OrdinalIgnoreCase) -eq 0 - } - } - - return $isSameDomain -} - -<# -.Synopsis - Parses various object name formats to extract the machine or domain scope. - - The returned $scope is used to determine where to perform the resolution, - the local machine or a target domain while $accountName is the name - of the account to resolve. - - The following details the formats that are handled as well as how the - values are determined. - - Domain qualified names (domainname\username) - - The value is split on the first '\' character with the left hand side - returned as the scope and the right hand side is returned as the account name. - - UPN: (username@domainname) - - The value is split on the first '@' character with the left hand side - returned as the account name and the right hand side returned - as the scope - - DistinguishedName: - - The value at the first occurance of "DC=" is used to extract the unqualified - domain name. The incoming string is returned, as is, for the account - name. - - Unqualified account names: - - The incoming string is returned as the account name and the local - machine name is returned as the scope. Note that values that do - not fall into the above categories are interpreted as unqualified - account names. - -.Notes - ResolveNameToPrincipal will fail if a machine name is specified - as domainname\machinename. It will succeed if the machine name - is specified as the SAM name (domainname\machinename$) or - as the unqualified machine name. - Parse-Scope splits the scope and account name to avoid - the problem. -#> -function Parse-Scope -{ - [OutputType([string])] - param - ( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string] - $fullName, - - [Parameter(Mandatory=$true)] - [AllowEmptyString()] - [AllowNull()] - [ref] $accountName - ) - Set-StrictMode -Version latest - - # assume no scope is defined or $fullName is a DistinguishedName - $accountName.Value = $fullName - - # parse domain or machine qualified account name - [int] $separatorIndex = $fullName.IndexOf("\") - if ($separatorIndex -ne -1) - { - $scope = $fullName.Substring(0, $separatorIndex) - if (IsLocalMachine $scope) - { - $scope = $env:COMPUTERNAME - } - $accountName.Value = $fullName.Substring($separatorIndex+1) - return $scope - } - - # parse UPN for the scope - $separatorIndex = $fullName.IndexOf("@") - if ($separatorIndex -ne -1) - { - $scope = $fullName.Substring($separatorIndex + 1) - $accountName.Value = $fullName.Substring(0,$separatorIndex) - return $scope - } - - # parse distinguished name for the scope - $separatorIndex = $fullName.IndexOf("DC=", [System.StringComparison]::OrdinalIgnoreCase) - if ($separatorIndex -ne -1) - { - # NOTE: For distinguished name formats, the DistinguishedName is - # returned as the account name. See the initialization of $accountName - # above. - $startIndex = $separatorIndex + 3 - $endIndex = $fullName.IndexOf(",", $startIndex) - if ($endIndex -gt $startIndex) - { - $length = $endIndex - $separatorIndex - 3 - $scope = $fullName.Substring($startIndex, $length) - return $scope - } - } - return $env:COMPUTERNAME -} - -<# -.Synopsis - Disposes the contents of an array list containing IDisposable objects. -#> -function DisposeAll -{ - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [AllowEmptyCollection()] - [System.Collections.ArrayList] - $disposables - ) - Set-StrictMode -Version latest - - if ($disposables.Count -gt 0) - { - foreach ($disposable in $disposables) - { - if ($disposable -is [System.IDisposable]) - { - $disposable.Dispose() - } - } - } -} - -<# -.Synopsis - Gets a local windows group - -.Notes - The returned value is NOT added to the $disposables list. -#> -function GetGroup -{ - [OutputType([System.DirectoryServices.AccountManagement.GroupPrincipal])] - param - ( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] $groupName, - - [Parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Collections.ArrayList] - [AllowEmptyCollection()] - $disposables, - - [Parameter(Mandatory = $true)] - [AllowEmptyCollection()] - $principalContexts - ) - - [System.DirectoryServices.AccountManagement.PrincipalContext] $principalContext = GetPrincipalContext -principalContexts $principalContexts -disposables $disposables -scope $env:COMPUTERNAME -credential $null - [System.DirectoryServices.AccountManagement.GroupPrincipal] $group = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($principalContext, $groupName) - # NOTE: $group is not automatically added to $disposables because the caller - # may need to call $group.Delete() which also disposes it. - return $group -} - -<# -.Synopsis -Validates the Group name for invalid characters. -#> -function ValidateGroupName -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $GroupName - ) - - # Check if the name consists of only periods and/or white spaces. - [bool] $wrongName = $true - - for($i = 0; $i -lt $GroupName.Length; $i++) - { - if(-not [Char]::IsWhiteSpace($GroupName, $i) -and $GroupName[$i] -ne '.') - { - $wrongName = $false - break - } - } - - $invalidChars = @('\','/','"','[',']',':','|','<','>','+','=',';',',','?','*','@') - - if($wrongName) - { - ThrowInvalidArgumentError -ErrorId "GroupNameHasOnlyWhiteSpacesAndDots" -ErrorMessage ($LocalizedData.InvalidGroupName -f $GroupName, [string]::Join(" ", $invalidChars)) - } - - if($GroupName.IndexOfAny($invalidChars) -ne -1) - { - ThrowInvalidArgumentError -ErrorId "GroupNameHasInvalidCharachter" -ErrorMessage ($LocalizedData.InvalidGroupName -f $GroupName, [string]::Join(" ", $invalidChars)) - } -} - -<# -.Synopsis -Throws an argument error. -#> -function ThrowInvalidArgumentError -{ - [CmdletBinding()] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorMessage - ) - - $errorCategory=[System.Management.Automation.ErrorCategory]::InvalidArgument - $exception = New-Object System.ArgumentException $ErrorMessage; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $ErrorId, $errorCategory, $null - throw $errorRecord -} - -Function Throw-TerminatingError -{ - param( - [string] $Message, - [System.Management.Automation.ErrorRecord] $ErrorRecord, - [string] $ExceptionType - ) - - $exception = new-object "System.InvalidOperationException" $Message,$ErrorRecord.Exception - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,"MachineStateIncorrect","InvalidOperation",$null - throw $errorRecord -} - -<# -.Synopsis -Writes either to Verbose or ShouldProcess channel. -#> -function Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - -#endregion - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/MSFT_GroupResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_GroupResource/MSFT_GroupResource.schema.mof deleted file mode 100644 index 94811268987cda032367c6b53f0d430846e708cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmbu7PfNo<5XIkF=ywP?SqP$6J=vN{k!Wd)mrx`&p#*Fix(OPjU%mQf(%Piv&_9Hb z-Ryfaznz(%bqg2p(ZvS>7(TCvu;e$!0tqf*;|5o_*4IWG4lMMjh^b2u(pTV_-Z}T8 ze&pE#Ia03Mm{2VlrhoA*co;Fl7;hErkZz;CCAAS^1fmW4;JV*ieZd!H->HgBx--LN=^4O+1Mr1A|^ElA#xKT6DG$5kqZ}QMIl`{ zD1H8Vm{suS>s5uT%yoW}c4X28Urp@EV|o>j%Ff(r_E*-WnNfJjO2;+7aR_ruc)`5~ zZp<>HJ$q?Wn86$-cs9c`2ZpfDpUsF90iFxW5IGN$XM=mGWC~vL_J)`f)FX-ax&~RN z8Y)QsIr>i1@3sDKxW!8%Z|eAp-ivt0C>zA|e@3KwAFDSjyM?_<=XwRZbcXO6XV8BS8 zPtr}CexjHs8tM2j*CuNhWo~h6tPh?6a<#7p0pPZInc?s7(dD_?M~2A+?|B^iS4`&hGpn2VB-w-7Jsd|v>DDXd9~ ziKj7{lWBbKflU&Kg7Tz1A2;B@bpVZIbqT3AefkJYO#7p9E(d>Yc{p$%(s>O$j%|kloN+F@2}x8 z9DE@g)y^MUkCk7wCo+cYWUJ|N@phq{s-}ACG8_lu$rgSL`63_8*Ly1#6YHj(*}GP0 z?$OJ~amdJx-_IymQ>)HpIk}rSJCB zyG28;*)DEFzO;))KI5uLB?rqleLOuH8m*fUvY@KD-jwsQ1jOtOf1QZei>!1M`*>vJ zXc1jMS&K1*2y^%~24?szifaOOjU#49`OxY}GuG!>L*A`vo}+X?K~?(D3`DoV?49~z=<)JoS^GcOV3 zl`h`6ZAhXVtLzrH)(x?8YexzQ6_>$-8>2Dj3r=OpKH2s2;YDJ|vli<+=Ts^#E4D^m zk5AVkf=X49J*(zwl9l+$y5+FMx#Nw(TG7_59FO`uDwjYFK7J@}vK;z3UDqp|e1^nt z2J^cm;)ztgx+fI^k_ckuj)5O;Xn%St=D17Cnytx@3QV4)!b0t+bk7e!VFT zo>X;O<;+v7u9;F;LC%bCHpWnugL^ZT_H;cjkK*CC^<|sWNn>F3==Z474ca?C*Fk3* zwytd$v%>F%{pQy#ZTt+99aoF4f=yf1s8Jo{NB5v1&tR5PA!M()W^&tY@@+Gb2@T47znH+B#2=-tP^zV(jL+LwPWbMnvE&L8aX5zN~p z`kiNyD9$i?@8Pb_8K|a{%GR{gj`AXv)l>rWP|aSK#l{&pikar_0uPVWgBo!@QTM-F zMvV(s6{^o&3<2y!tZB8-QC6JQ+i^#DUi2(QJ}FwB zz!Y|8+*%KBEZMuoj=WpH|2C5QE)YhaErJ7PsA3wD**o~*Mj^AuX`xOM2hhez^Yvz@ z&hzpkc+@ie@#U&w8fmx=rP1x#2VsulwG^r@fd)oCaoouvpY Y!@umOIjz|1-7VkJIFq{Y9>>pr0rBOqhX4Qo diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/MSFT_LogResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/MSFT_LogResource.schema.mof deleted file mode 100644 index 9216888..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/MSFT_LogResource.schema.mof +++ /dev/null @@ -1,7 +0,0 @@ -#pragma namespace("\\\\.\\root\\microsoft\\windows\\DesiredstateConfiguration") - -[ClassVersion("1.0.0"),FriendlyName("Log")] -class MSFT_LogResource : OMI_BaseResource -{ - [required] string Message; -}; diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/ko-KR/MSFT_LogResource.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_LogResource/ko-KR/MSFT_LogResource.schema.mfl deleted file mode 100644 index 6cc19d8c8060b9c20dd464237eaa37b4b88027be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmd5)O-lk%6g}%8XcM$(@vu!oNJXong{47|2`Ln0h}aYZIf`Q_SpT4fi+)0zV1l&S zOtdheoS;Pn?OgT~YFnNAMxpQz#N)n?^Ugi*zI*TY*Az-9BZos2I4fA33ou|4&mqs< zG(yPqM?|k>6get-Uw}!LAU5rwk5-9V*e6mYF5WS%X_9FWx5>-V46Kr4(a&TA$2yV< z_kx8G#wbR#Qoy%#JW9W#kmVSTw*Ko6%hX69McxADFwfHxPHCe0fB!An`WtnS2Z?&O zpGV2K$qEf}B{iya6&&yE{-Sf<;;w!9*yzGhnDjrL%$q{`w%2Jtop_2GDdt@PSB^K~ z3cJ?qxjXb9+<33!zCs*nY?Bvz9&5flD16+x*TOE{1o~muZ@sr7x>5>@WJY!GNadx< zGdw4#vPs=wO%qetK$7oAxyIRDv#8O63Wc%9d--V|N9+)rL+Na+F_tVnitLju-AhH? bFVdmG+ez})$yw2U#t=(X>souz1A_bj(}|*| diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.psm1 deleted file mode 100644 index c0b606e..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.psm1 +++ /dev/null @@ -1,811 +0,0 @@ -data LocalizedData -{ - # culture="en-US" - # TODO: Support WhatIf - ConvertFrom-StringData @' -InvalidIdentifyingNumber=The specified IdentifyingNumber ({0}) is not a valid Guid -InvalidPath=The specified Path ({0}) is not in a valid format. Valid formats are local paths, UNC, and HTTP -InvalidNameOrId=The specified Name ({0}) and IdentifyingNumber ({1}) do not match Name ({2}) and IdentifyingNumber ({3}) in the MSI file -NeedsMoreInfo=Either Name or ProductId is required -InvalidBinaryType=The specified Path ({0}) does not appear to specify an EXE or MSI file and as such is not supported -CouldNotOpenLog=The specified LogPath ({0}) could not be opened -CouldNotStartProcess=The process {0} could not be started -UnexpectedReturnCode=The return code {0} was not expected. Configuration is likely not correct -PathDoesNotExist=The given Path ({0}) could not be found -CouldNotOpenDestFile=Could not open the file {0} for writing -CouldNotGetHttpStream=Could not get the {0} stream for file {1} -ErrorCopyingDataToFile=Encountered error while writing the contents of {0} to {1} -PackageConfigurationComplete=Package configuration finished -PackageConfigurationStarting=Package configuration starting -InstalledPackage=Installed package -UninstalledPackage=Uninstalled package -NoChangeRequired=Package found in desired state, no action required -RemoveExistingLogFile=Remove existing log file -CreateLogFile=Create log file -MountSharePath=Mount share to get media -DownloadHTTPFile=Download the media over HTTP or HTTPS -StartingProcessMessage=Starting process {0} with arguments {1} -RemoveDownloadedFile=Remove the downloaded file -PackageInstalled=Package has been installed -PackageUninstalled=Package has been uninstalled -MachineRequiresReboot=The machine requires a reboot -PackageDoesNotAppearInstalled=The package {0} is not installed -PackageAppearsInstalled=The package {0} is installed -PostValidationError=Package from {0} was installed, but the specified ProductId and/or Name does not match package details -ValidateStandardArgumentsPathwasPath = Validate-StandardArguments, Path was {0} -TheurischemewasuriScheme = The uri scheme was {0} -ThepathextensionwaspathExt = The path extension was {0} -ParsingProductIdasanidentifyingNumber = Parsing {0} as an identifyingNumber -ParsedProductIdasidentifyingNumber = Parsed {0} as {1} -EnsureisEnsure = Ensure is {0} -productisproduct = product {0} found -productasbooleanis = product as boolean is {0} -Creatingcachelocation = Creating cache location -NeedtodownloadfilefromschemedestinationwillbedestName = Need to download file from {0}, destination will be {1} -Creatingthedestinationcachefile = Creating the destination cache file -Creatingtheschemestream = Creating the {0} stream -Settingdefaultcredential = Setting default credential -Settingauthenticationlevel = Setting authentication level -Ignoringbadcertificates = Ignoring bad certificates -Gettingtheschemeresponsestream = Getting the {0} response stream -ErrorOutString = Error: {0} -Copyingtheschemestreambytestothediskcache = Copying the {0} stream bytes to the disk cache -Redirectingpackagepathtocachefilelocation = Redirecting package path to cache file location -ThebinaryisanEXE = The binary is an EXE -Userhasrequestedloggingneedtoattacheventhandlerstotheprocess = User has requested logging, need to attach event handlers to the process -StartingwithstartInfoFileNamestartInfoArguments = Starting {0} with {1} -'@ -} - -Import-LocalizedData LocalizedData -filename PackageProvider.psd1 - - -$Debug = $true -Function Trace-Message -{ - param([string] $Message) - if($Debug) - { - Write-Verbose $Message - } -} - -$CacheLocation = "$env:ProgramData\Microsoft\Windows\PowerShell\Configuration\BuiltinProvCache\MSFT_PackageResource" - -Function Throw-InvalidArgumentException -{ - param( - [string] $Message, - [string] $ParamName - ) - - $exception = new-object System.ArgumentException $Message,$ParamName - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,$ParamName,"InvalidArgument",$null - throw $errorRecord -} - -Function Throw-InvalidNameOrIdException -{ - param( - [string] $Message - ) - - $exception = new-object System.ArgumentException $Message - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,"NameOrIdNotInMSI","InvalidArgument",$null - throw $errorRecord -} - -Function Throw-TerminatingError -{ - param( - [string] $Message, - [System.Management.Automation.ErrorRecord] $ErrorRecord - ) - - $exception = new-object "System.InvalidOperationException" $Message,$ErrorRecord.Exception - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,"MachineStateIncorrect","InvalidOperation",$null - throw $errorRecord -} - -Function Validate-StandardArguments -{ - param( - $Path, - $ProductId, - $Name - ) - - Trace-Message ($LocalizedData.ValidateStandardArgumentsPathwasPath -f $Path) - $uri = $null - try - { - $uri = [uri] $Path - } - catch - { - Throw-InvalidArgumentException ($LocalizedData.InvalidPath -f $Path) "Path" - } - - if(-not @("file", "http", "https") -contains $uri.Scheme) - { - Trace-Message ($Localized.TheurischemewasuriScheme -f $uri.Scheme) - Throw-InvalidArgumentException ($LocalizedData.InvalidPath -f $Path) "Path" - } - - $pathExt = [System.IO.Path]::GetExtension($Path) - Trace-Message ($LocalizedData.ThepathextensionwaspathExt -f $pathExt) - if(-not @(".msi",".exe") -contains $pathExt.ToLower()) - { - Throw-InvalidArgumentException ($LocalizedData.InvalidBinaryType -f $Path) "Path" - } - - $identifyingNumber = $null - if(-not $Name -and -not $ProductId) - { - #It's a tossup here which argument to blame, so just pick ProductId to encourage customers to use the most efficient version - Throw-InvalidArgumentException ($LocalizedData.NeedsMoreInfo -f $Path) "ProductId" - } - elseif($ProductId) - { - try - { - Trace-Message ($LocalizedData.ParsingProductIdasanidentifyingNumber -f $ProductId) - $identifyingNumber = "{{{0}}}" -f [Guid]::Parse($ProductId).ToString().ToUpper() - Trace-Message ($LocalizedData.ParsedProductIdasidentifyingNumber -f $ProductId, $identifyingNumber) - } - catch - { - Throw-InvalidArgumentException ($LocalizedData.InvalidIdentifyingNumber -f $ProductId) $ProductId - } - } - - return $uri, $identifyingNumber -} - -Function Get-ProductEntry -{ - param - ( - [string] $Name, - [string] $IdentifyingNumber - ) - - $uninstallKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" - $uninstallKeyWow64 = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" - - if($IdentifyingNumber) - { - $keyLocation = "$uninstallKey\$identifyingNumber" - $item = Get-Item $keyLocation -EA SilentlyContinue - if(-not $item) - { - $keyLocation = "$uninstallKeyWow64\$identifyingNumber" - $item = Get-Item $keyLocation -EA SilentlyContinue - } - - return $item - } - - foreach($item in (Get-ChildItem -EA Ignore $uninstallKey, $uninstallKeyWow64)) - { - if($Name -eq (Get-LocalizableRegKeyValue $item "DisplayName")) - { - return $item - } - } - - return $null -} - -function Test-TargetResource -{ - param - ( - [ValidateSet("Present", "Absent")] - [string] $Ensure = "Present", - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Name, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] $Path, - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $ProductId, - - [string] $Arguments, - - [pscredential] $Credential, - - [int[]] $ReturnCode, - - [string] $LogPath - ) - - $uri, $identifyingNumber = Validate-StandardArguments $Path $ProductId $Name - $product = Get-ProductEntry $Name $identifyingNumber - Trace-Message ($LocalizedData.EnsureisEnsure -f $Ensure) - if($product) - { - Trace-Message ($LocalizedData.productisproduct -f $product) - } - else - { - Trace-Message "product installation cannot be determined" - } - Trace-Message ($LocalizedData.productasbooleanis -f [boolean]$product) - $res = ($product -ne $null -and $Ensure -eq "Present") -or ($product -eq $null -and $Ensure -eq "Absent") - - if ($product -ne $null) - { - $name = Get-LocalizableRegKeyValue $product "DisplayName" - Write-Verbose ($LocalizedData.PackageAppearsInstalled -f $name) - } - else - { - $displayName = $null - if($Name) - { - $displayName = $Name - } - else - { - $displayName = $ProductId - } - - Write-Verbose ($LocalizedData.PackageDoesNotAppearInstalled -f $displayName) - } - - return $res -} - -function Get-LocalizableRegKeyValue -{ - param( - [object] $RegKey, - [string] $ValueName - ) - - $res = $RegKey.GetValue("{0}_Localized" -f $ValueName) - if(-not $res) - { - $res = $RegKey.GetValue($ValueName) - } - - return $res -} - -function Get-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Name, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] $Path, - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $ProductId - ) - - #If the user gave the ProductId then we derive $identifyingNumber - $uri, $identifyingNumber = Validate-StandardArguments $Path $ProductId $Name - - $localMsi = $uri.IsFile -and -not $uri.IsUnc - - $product = Get-ProductEntry $Name $identifyingNumber - - if(-not $product) - { - return @{ - Ensure = "Absent" - Name = $Name - ProductId = $identifyingNumber - Installed = $false - } - } - - #$identifyingNumber can still be null here (e.g. remote MSI with Name specified, local EXE) - #If the user gave a ProductId just pass it through, otherwise fill it from the product - if(-not $identifyingNumber) - { - $identifyingNumber = Split-Path -Leaf $product.Name - } - - $date = $product.GetValue("InstallDate") - if($date) - { - try - { - $date = "{0:d}" -f [DateTime]::ParseExact($date, "yyyyMMdd",[System.Globalization.CultureInfo]::CurrentCulture).Date - } - catch - { - $date = $null - } - } - - $publisher = Get-LocalizableRegKeyValue $product "Publisher" - $size = $product.GetValue("EstimatedSize") - if($size) - { - $size = $size/1024 - } - - $version = $product.GetValue("DisplayVersion") - $description = $product.GetValue("Comments") - $name = Get-LocalizableRegKeyValue $product "DisplayName" - return @{ - Ensure = "Present" - Name = $name - Path = $Path - InstalledOn = $date - ProductId = $identifyingNumber - Size = $size - Installed = $true - Version = $version - PackageDescription = $description - Publisher = $publisher - } -} - -Function Get-MsiTools -{ - if($script:MsiTools) - { - return $script:MsiTools - } - - $sig = @' - [DllImport("msi.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true, ExactSpelling = true)] - private static extern UInt32 MsiOpenPackageExW(string szPackagePath, int dwOptions, out IntPtr hProduct); - - [DllImport("msi.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true, ExactSpelling = true)] - private static extern uint MsiCloseHandle(IntPtr hAny); - - [DllImport("msi.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true, ExactSpelling = true)] - private static extern uint MsiGetPropertyW(IntPtr hAny, string name, StringBuilder buffer, ref int bufferLength); - - private static string GetPackageProperty(string msi, string property) - { - IntPtr MsiHandle = IntPtr.Zero; - try - { - var res = MsiOpenPackageExW(msi, 1, out MsiHandle); - if (res != 0) - { - return null; - } - - int length = 256; - var buffer = new StringBuilder(length); - res = MsiGetPropertyW(MsiHandle, property, buffer, ref length); - return buffer.ToString(); - } - finally - { - if (MsiHandle != IntPtr.Zero) - { - MsiCloseHandle(MsiHandle); - } - } - } - public static string GetProductCode(string msi) - { - return GetPackageProperty(msi, "ProductCode"); - } - - public static string GetProductName(string msi) - { - return GetPackageProperty(msi, "ProductName"); - } -'@ - $script:MsiTools = Add-Type -PassThru -Namespace Microsoft.Windows.DesiredStateConfiguration.PackageResource ` - -Name MsiTools -Using System.Text -MemberDefinition $sig - return $script:MsiTools -} - - -Function Get-MsiProductEntry -{ - param - ( - [string] $Path - ) - - if(-not (Test-Path -PathType Leaf $Path) -and ($fileExtension -ne ".msi")) - { - Throw-TerminatingError ($LocalizedData.PathDoesNotExist -f $Path) - } - - $tools = Get-MsiTools - - $pn = $tools::GetProductName($Path) - - $pc = $tools::GetProductCode($Path) - - return $pn,$pc -} - - -function Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [ValidateSet("Present", "Absent")] - [string] $Ensure = "Present", - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Name, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] $Path, - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $ProductId, - - [string] $Arguments, - - [pscredential] $Credential, - - [int[]] $ReturnCode, - - [string] $LogPath - ) - - $ErrorActionPreference = "Stop" - - if (Test-TargetResource -Ensure $Ensure -Name $Name -Path $Path -ProductId $ProductId) - { - return - } - - $uri, $identifyingNumber = Validate-StandardArguments $Path $ProductId $Name - $product = Get-ProductEntry $Name $identifyingNumber - - #Path gets overwritten in the download code path. Retain the user's original Path in case the install succeeded - #but the named package wasn't present on the system afterward so we can give a better message - $OrigPath = $Path - - Write-Verbose $LocalizedData.PackageConfigurationStarting - if(-not $ReturnCode) - { - # return code 1641 and 3010 are succeed indication when restart is requested per installation - $ReturnCode = @(0, 1641, 3010) - } - - $logStream = $null - $psdrive = $null - $downloadedFileName = $null - try - { - $fileExtension = [System.IO.Path]::GetExtension($Path).ToLower() - if($LogPath) - { - try - { - if($fileExtension -eq ".msi") - { - #We want to pre-verify the path exists and is writable ahead of time - #even in the MSI case, as detecting WHY the MSI log doesn't exist would - #be rather problematic for the user - if((Test-Path $LogPath) -and $PSCmdlet.ShouldProcess($LocalizedData.RemoveExistingLogFile,$null,$null)) - { - rm $LogPath - } - - if($PSCmdlet.ShouldProcess($LocalizedData.CreateLogFile, $null, $null)) - { - New-Item -Type File $LogPath | Out-Null - } - } - elseif($PSCmdlet.ShouldProcess($LocalizedData.CreateLogFile, $null, $null)) - { - $logStream = new-object "System.IO.StreamWriter" $LogPath,$false - } - } - catch - { - Throw-TerminatingError ($LocalizedData.CouldNotOpenLog -f $LogPath) $_ - } - } - - #Download or mount file as necessary - if(-not ($fileExtension -eq ".msi" -and $Ensure -eq "Absent")) - { - if($uri.IsUnc -and $PSCmdlet.ShouldProcess($LocalizedData.MountSharePath, $null, $null)) - { - $psdriveArgs = @{Name=([guid]::NewGuid());PSProvider="FileSystem";Root=(Split-Path $uri.LocalPath)} - if($Credential) - { - #We need to optionally include these and then splat the hash otherwise - #we pass a null for Credential which causes the cmdlet to pop a dialog up - $psdriveArgs["Credential"] = $Credential - } - - $psdrive = New-PSDrive @psdriveArgs - $Path = Join-Path $psdrive.Root (Split-Path -Leaf $uri.LocalPath) #Necessary? - } - elseif(@("http", "https") -contains $uri.Scheme -and $Ensure -eq "Present" -and $PSCmdlet.ShouldProcess($LocalizedData.DownloadHTTPFile, $null, $null)) - { - $scheme = $uri.Scheme - $outStream = $null - $responseStream = $null - - try - { - Trace-Message ($LocalizedData.Creatingcachelocation) - - if(-not (Test-Path -PathType Container $CacheLocation)) - { - mkdir $CacheLocation | Out-Null - } - - $destName = Join-Path $CacheLocation (Split-Path -Leaf $uri.LocalPath) - - Trace-Message ($LocalizedData.NeedtodownloadfilefromschemedestinationwillbedestName -f $scheme, $destName) - - try - { - Trace-Message ($LocalizedData.Creatingthedestinationcachefile) - $outStream = New-Object System.IO.FileStream $destName, "Create" - } - catch - { - #Should never happen since we own the cache directory - Throw-TerminatingError ($LocalizedData.CouldNotOpenDestFile -f $destName) $_ - } - - try - { - Trace-Message ($LocalizedData.Creatingtheschemestream -f $scheme) - $request = [System.Net.WebRequest]::Create($uri) - Trace-Message ($LocalizedData.Settingdefaultcredential) - $request.Credentials = [System.Net.CredentialCache]::DefaultCredentials - if ($scheme -eq "http") - { - Trace-Message ($LocalizedData.Settingauthenticationlevel) - # default value is MutualAuthRequested, which applies to https scheme - $request.AuthenticationLevel = [System.Net.Security.AuthenticationLevel]::None - } - if ($scheme -eq "https") - { - Trace-Message ($LocalizedData.Ignoringbadcertificates) - $request.ServerCertificateValidationCallBack = {$true} - } - Trace-Message ($LocalizedData.Gettingtheschemeresponsestream -f $scheme) - $responseStream = (([System.Net.HttpWebRequest]$request).GetResponse()).GetResponseStream() - } - catch - { - Trace-Message ($LocalizedData.ErrorOutString -f ($_ | Out-String)) - Throw-TerminatingError ($LocalizedData.CouldNotGetHttpStream -f $scheme, $Path) $_ - } - - try - { - Trace-Message ($LocalizedData.Copyingtheschemestreambytestothediskcache -f $scheme) - $responseStream.CopyTo($outStream) - $responseStream.Flush() - $outStream.Flush() - } - catch - { - Trace-Message ($LocalizedData.ErrorOutString -f ($_ | Out-String)) - Throw-TerminatingError ($LocalizedData.ErrorCopyingDataToFile -f $Path,$destName) $_ - } - } - finally - { - if($outStream) - { - $outStream.Close() - } - - if($responseStream) - { - $responseStream.Close() - } - } - Trace-Message ($LocalizedData.Redirectingpackagepathtocachefilelocation) - $Path = $downloadedFileName = $destName - } - } - - #At this point the Path ought to be valid unless it's an MSI uninstall case - if(-not (Test-Path -PathType Leaf $Path) -and -not ($Ensure -eq "Absent" -and $fileExtension -eq ".msi")) - { - Throw-TerminatingError ($LocalizedData.PathDoesNotExist -f $Path) - } - - $startInfo = New-Object System.Diagnostics.ProcessStartInfo - $startInfo.UseShellExecute = $false #Necessary for I/O redirection and just generally a good idea - $process = New-Object System.Diagnostics.Process - $process.StartInfo = $startInfo - $errLogPath = $LogPath + ".err" #Concept only, will never touch disk - - if($fileExtension -eq ".msi") - { - $startInfo.FileName = "$env:windir\system32\msiexec.exe" - if($Ensure -eq "Present") - { - # check if Msi package contains the ProductName and Code specified - - $pName,$pCode = Get-MsiProductEntry -Path $Path - - if ( - ( (-not [String]::IsNullOrEmpty($Name)) -and ($pName -ne $Name)) ` - -or ( (-not [String]::IsNullOrEmpty($identifyingNumber)) -and ($identifyingNumber -ne $pCode)) - ) - { - Throw-InvalidNameOrIdException ($LocalizedData.InvalidNameOrId -f $Name,$identifyingNumber,$pName,$pCode) - } - - $startInfo.Arguments = '/i "{0}"' -f $Path - } - else - { - $id = Split-Path -Leaf $product.Name #We may have used the Name earlier, now we need the actual ID - $startInfo.Arguments = ("/x{0}" -f $id) - } - - if($LogPath) - { - $startInfo.Arguments += ' /log "{0}"' -f $LogPath - } - - $startInfo.Arguments += " /quiet" - - if($Arguments) - { - $startInfo.Arguments += " " + $Arguments - } - } - else #EXE - { - Trace-Message ($LocalizedData.ThebinaryisanEXE) - if($Ensure -eq "Present") - { - $startInfo.FileName = $Path - $startInfo.Arguments = $Arguments - if($LogPath) - { - Trace-Message ($LocalizedData.Userhasrequestedloggingneedtoattacheventhandlerstotheprocess) - $startInfo.RedirectStandardError = $true - $startInfo.RedirectStandardOutput = $true - Register-ObjectEvent -InputObject $process -EventName "OutputDataReceived" -SourceIdentifier $LogPath - Register-ObjectEvent -InputObject $process -EventName "ErrorDataReceived" -SourceIdentifier $errLogPath - } - } else { - # Absent case - $startInfo.FileName = "$env:windir\system32\msiexec.exe" - $id = Split-Path -Leaf $product.Name - $startInfo.Arguments = ("/x{0} /quiet" -f $id) - # Never let the msiexec to restart automatically, DSC should handle reboot requests - $startInfo.Arguments += ' /norestart' - if($LogPath) - { - $startInfo.Arguments += ' /log "{0}"' -f $LogPath - } - - if($Arguments) - { - $startInfo.Arguments += " " + $Arguments - } - } - } - - Trace-Message ($LocalizedData.StartingwithstartInfoFileNamestartInfoArguments -f $startInfo.FileName, $startInfo.Arguments) - - if($PSCmdlet.ShouldProcess(($LocalizedData.StartingProcessMessage -f $startInfo.FileName, $startInfo.Arguments), $null, $null)) - { - try - { - $exitcode = 0 - $process.Start() | Out-Null - if($logStream) #Identical to $fileExtension -eq ".exe" -and $logPath - { - $process.BeginOutputReadLine(); - $process.BeginErrorReadLine(); - } - - $process.WaitForExit() - - if($process) - { - $exitCode = $process.ExitCode - } - - } - catch - { - Throw-TerminatingError ($LocalizedData.CouldNotStartProcess -f $Path) $_ - } - - - if($logStream) - { - #We have to re-mux these since they appear to us as different streams - #The underlying Win32 APIs prevent this problem, as would constructing a script - #on the fly and executing it, but the former is highly problematic from PowerShell - #and the latter doesn't let us get the return code for UI-based EXEs - $outputEvents = Get-Event -SourceIdentifier $LogPath - $errorEvents = Get-Event -SourceIdentifier $errLogPath - $masterEvents = @() + $outputEvents + $errorEvents - $masterEvents = $masterEvents | Sort-Object -Property TimeGenerated - - foreach($event in $masterEvents) - { - $logStream.Write($event.SourceEventArgs.Data); - } - - Remove-Event -SourceIdentifier $LogPath - Remove-Event -SourceIdentifier $errLogPath - } - - if(-not ($ReturnCode -contains $exitCode)) - { - Throw-TerminatingError ($LocalizedData.UnexpectedReturnCode -f $exitCode.ToString()) - } - } - } - finally - { - if($psdrive) - { - Remove-PSDrive -Force $psdrive - } - - if($logStream) - { - $logStream.Dispose() - } - } - - if($downloadedFileName -and $PSCmdlet.ShouldProcess($LocalizedData.RemoveDownloadedFile, $null, $null)) - { - #This is deliberately not in the Finally block. We want to leave the downloaded file on disk - #in the error case as a debugging aid for the user - rm $downloadedFileName - } - - $operationString = $LocalizedData.PackageUninstalled - if($Ensure -eq "Present") - { - $operationString = $LocalizedData.PackageInstalled - } - - # Check if reboot is required, if so notify CA. The MSFT_ServerManagerTasks provider is missing on client SKUs (Worked on both Server and Client Skus as in windows 10) - $featureData = invoke-wmimethod -EA Ignore -Name GetServerFeature -namespace root\microsoft\windows\servermanager -Class MSFT_ServerManagerTasks - $regData = Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" "PendingFileRenameOperations" -EA Ignore - if(($featureData -and $featureData.RequiresReboot) -or $regData -or $exitcode -eq 3010 -or $exitcode -eq 1641) - { - Write-Verbose $LocalizedData.MachineRequiresReboot - $global:DSCMachineStatus = 1 - } - - if($Ensure -eq "Present") - { - $productEntry = Get-ProductEntry $Name $identifyingNumber - if(-not $productEntry) - { - Throw-TerminatingError ($LocalizedData.PostValidationError -f $OrigPath) - } - } - - Write-Verbose $operationString - Write-Verbose $LocalizedData.PackageConfigurationComplete -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/MSFT_PackageResource.schema.mof deleted file mode 100644 index d30eee91943221e170d7b2f10c2d282b9ab9a982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmb7^OHaa35QWd$#Q)H+(u5cvJ6$1aLKHD-+z?`TG}s6QX^BC@Usu1mP~ieKn5OM* zd(O<6Gjsd>wW}S~RaQ?;B^*x*HR2v=pjdk<=tu`TbZ0^PD(Z^w5vW)lSQFjC?DK5c zJJxNza_#cQ@C^mB9PQr>fvS2S%A=lF@b_>M@{Y;SW*z91vj)Bb_S`89wTiOnpDsrL zx~_MpFNI&EnkIS2tgEbs;7sGl<*^D8?A_GkCja1By$Ny6qZk(gU2;!c zO`*<~bY7Ef;{5UPnV-v8Q~XAZ$Z79vV43r&Ubf0$4h-nt7?)GL?Rcz(f9tiBV0PhI zzsTlq5-OR2!ZT)EyZ=K`shzoED_1km|(K6d*%liL{G{(^$ zoP<8xF5Ql|aJ~oII#R=vJg)E91KB>{pCMM#F1&bHNq)iOLkA?9g5do9N3Pg&Tgc2#G)W%Ypc1Tb(ae;{o z7A#n>(8L8ANhYKjh-pbNr4goGpf#qfFmd6MAD|oc-1k~(L2ydUWIo=QrJ0CKeb`3 zle(y*bobC1pmb9=wPVbUF$cBM1Wtw1Ndp+?cl}_(hwS5M^ZGZ)gKT;voA+@If{)uc zyD;~o{Tyqz@#G8n>}s?VDg)VDQZ4Hh$bK|AYDR{6cTM5eHw$eG_v!3)Y{JMUb%oU+f6ZH&9YjF>kEji<2?7r*$1aZBL{zDagY@DL zQ*pFvBsQGHF8@?8z+feB?5-JW0q9@kpRU-)*e;#T?q`G{s2jG4k~M8!(>_#kx9d4F zUYYDYVZGTB)R5M2^?cl37PPQ3aH!wL<=)fjJgTUW6-Sr*F9Nr+z5!H_0h<`Pj=BCg zzLPZUXWo6!H%})!aQ7xV7n!-*_JA8Wg0eF1-3bR*19o&Hvfp);+MCU5wWw8HjsG6a zp6jdeFelT-c6P?H@0=c}G6c7T;Ol!(C1z8T>d3tJa;Z!{pSogkMQ>c|csHMArd}qt zQP)+iQa)2X_2~7WTD&%|0X6s8$Lx~ToWJj399;3c(Q{PB!iCnw!(vxExfe`5M9iZ` xn@ZQ^YORTPq%Ltp<}d6~BP;g#3wv0$Lx?dZS>?Ycfqhs0mnw6u;+Ox5egmnqP_+O6 diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/ko-KR/PackageProvider.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_PackageResource/ko-KR/PackageProvider.psd1 deleted file mode 100644 index 6839d1536539e81932360249f4e74f09da33a15a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5590 zcmbVQO=w(I6g~@GD2fU#M2PU90aK_pY5l3MO8#e%_NE zl`V^t1rN-gHta~&lb)qt=d1G@^Dno+LS6&;RGdb8r?uRzcYZ4eVN|Bm$!B}*E~qkCk~g&+?-AB z=r#OE<T3tULsp zm>n7DAA@ZvU>Jq>$6%q=?a8x05sOB55*{3cZ)l(K;@bI2dd*3U$J9F}icUcCSulJS z`Hig5^xIK<2C!oS�Ff>`U8X z;*KYMzpNuuH4B5V6W-bmR(m4;@??0nyTrU^{VmG&$z1 z@uj1bSYfYGtn63J0P1=4zV_;PHolLsx*yql0(;q~nKhq*qcm8eX5VB5{aq@quhJ)~ zldMmNmKRUH50{oqmq8A-s-~1X0$uFQE;E!Fts~C=U2{Q|J?Y`B#vJ?$+}huXir!1r ztC8CkUB6t|$aT$e2W$6f*cKqBX(jjDEcE5!)h!FTCB~PH-D)9M$=~$kLDmbopE-R7 z`-ky;0({th==9nrc= z*k)>Bws;9V-$f4CJZ!9#HnONI%6_9o^s=+YBBaOJZyon!&BY*lSv=Nkd^0i_pKZBn ztoFzEw~p7S4EnrL#zBMOQxoZpv6?Yf4!}?BS-#v~`Tcg+4fuZnS3f88; zShOd{QN=6xKGX$vWkyXadoA-WBh>C3bWDfZF>Hp=3vpdh>6!l_KQ4L9c;jPWCeuw%`*+>tDW`P!%jfVd0R2}l)k>^$=2%q#YfFmag3>Y z9*i2y6ZqT*wppb)Q!;Nef9LBNSmmyKX_TaMJ}VjRZ!L=!a?WKBQU66NZy#zz%5(^J z?m=@!9IBa}BMrRnzK^0ar!o+-*rLecziXj)r!PEuHN8u8(-z&Nd~OPSGM;0eq)(tH~r3&yv8Ft6t8UF z`*LoDb?-5pZ&(GF3+p-B{9KJV?dc{k*2a6>NiaveCk+=Pz~&;JvBbL1&h2!aF*}CM zS=g?y6~Z#My3}5BQ>pDU@rsN-e7RIq%Qk|)E9m}%R}Qfnpi03vA=kzn7E3;<^m z81+30-+83#u|>9hxe#8x!a0&s+e?hDSFWy?qg6o96V`S`7-f>yGq+g(GUj(HW0H+kzY2M>Rq0z>Q zaLRC@Infvep5U|?=5LadEekW{;Z=<})~pAM*vh$CCrvhYMc5v$sL#=ZfAfqjMVxU_%hI|pBa@Oq7zsn^lW zJZ?NV0ST;Qw1y`LWsVjSKW5_&1 - - if($err -eq $null) - { - Write-Log ($LocalizedData.ProcessesStopped -f $Path,($processIds -join ",")) - } - else - { - Write-Log ($LocalizedData.ErrorStopping -f $Path,($processIds -join ","),($err | out-string)) - throw $err - } - - # Before returning from Set-TargetResource we have to ensure a subsequent Test-TargetResource is going to work - if (!(WaitForProcessCount @getArguments -waitCount 0)) - { - $message = $LocalizedData.ErrorStopping -f $Path,($processIds -join ","),$LocalizedData.FailureWaitingForProcessesToStop - Write-Log $message - ThrowInvalidArgumentError "FailureWaitingForProcessesToStop" $message - } - } - else - { - Write-Log ($LocalizedData.ProcessAlreadyStopped -f $Path) - } - } - else - { - "StandardInputPath","WorkingDirectory" | AssertAbsolutePath $PSBoundParameters -Exist - "StandardOutputPath","StandardErrorPath" | AssertAbsolutePath $PSBoundParameters - - if ($processes.Count -eq 0) - { - $startArguments = ExtractArguments $PSBoundParameters ` - ("Path", "Arguments", "Credential", "StandardOutputPath", "StandardErrorPath", "StandardInputPath", "WorkingDirectory") ` - ("FilePath", "ArgumentList", "Credential", "RedirectStandardOutput", "RedirectStandardError", "RedirectStandardInput", "WorkingDirectory") - - if([string]::IsNullOrEmpty($Arguments)) - { - $null=$startArguments.Remove("ArgumentList") - } - - if($PSCmdlet.ShouldProcess($Path,$LocalizedData.StartingProcessWhatif)) - { - # - # Start-Process calls .net Process.Start() - # If -Credential is present Process.Start() uses win32 api CreateProcessWithLogonW http://msdn.microsoft.com/en-us/library/0w4h05yb(v=vs.110).aspx - # CreateProcessWithLogonW cannot be called as LocalSystem user. - # Details http://msdn.microsoft.com/en-us/library/windows/desktop/ms682431(v=vs.85).aspx (section Remarks/Windows XP with SP2 and Windows Server 2003) - # - # In this case we call another api. - # - if($PSBoundParameters.ContainsKey("Credential") -and (IsRunFromLocalSystemUser)) - { - if($PSBoundParameters.ContainsKey("StandardOutputPath") -or $PSBoundParameters.ContainsKey("StandardInputPath") -or $PSBoundParameters.ContainsKey("WorkingDirectory")) - { - $exception = New-Object System.ArgumentException $LocalizedData.ErrorParametersNotSupportedWithCredential - $err = New-Object System.Management.Automation.ErrorRecord $exception, "InvalidCombinationOfArguments", InvalidArgument, $null - } - else - { - $Domain, $UserName = Get-DomainAndUserName $Credential - try - { - # - # Internally we use win32 api LogonUser() with dwLogonType == LOGON32_LOGON_NETWORK_CLEARTEXT. - # It grants process ability for second-hop. - # - Import-DscNativeMethods - [PSDesiredStateConfiguration.NativeMethods]::CreateProcessAsUser( "$Path $Arguments", $Domain, $UserName, $Credential.Password, $false, [ref] $null ) - } - catch - { - throw New-Object System.Management.Automation.ErrorRecord $_.Exception, "Win32Exception", OperationStopped, $null - } - } - } - else - { - $err=Start-Process @startArguments 2>&1 - } - if($err -eq $null) - { - Write-Log ($LocalizedData.ProcessStarted -f $Path) - } - else - { - Write-Log ($LocalizedData.ErrorStarting -f $Path,($err | Out-String)) - throw $err - } - - # Before returning from Set-TargetResource we have to ensure a subsequent Test-TargetResource is going to work - if (!(WaitForProcessCount @getArguments -waitCount 1)) - { - $message = $LocalizedData.ErrorStarting -f $Path,$LocalizedData.FailureWaitingForProcessesToStart - Write-Log $message - ThrowInvalidArgumentError "FailureWaitingForProcessesToStart" $message - } - } - } - else - { - Write-Log ($LocalizedData.ProcessAlreadyStarted -f $Path) - } - } -} - -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path, - - [parameter(Mandatory = $true)] - [AllowEmptyString()] - [System.String] - $Arguments, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential, - - [System.String] - [ValidateSet("Present", "Absent")] - $Ensure="Present", - - [System.String] - $StandardOutputPath, - - [System.String] - $StandardErrorPath, - - [System.String] - $StandardInputPath, - - [System.String] - $WorkingDirectory - ) - - if($PsDscContext.RunAsUser) - { - if($PSBoundParameters.ContainsKey("Credential")) - { - $exception = New-Object System.ArgumentException ($LocalizedData.ErrorCredentialParameterNotSupportedWithRunAsCredential -f $PsDscContext.RunAsUser) - $err = New-Object System.Management.Automation.ErrorRecord $exception, "InvalidArgument", InvalidArgument, $null - } - else - { - $exception = New-Object System.ArgumentException ($LocalizedData.ErrorRunAsCredentialParameterNotSupported -f $PsDscContext.RunAsUser) - $err = New-Object System.Management.Automation.ErrorRecord $exception, "InvalidCombinationOfArguments", InvalidArgument, $null - } - - Write-Log ($LocalizedData.ErrorStarting -f $Path,($err | Out-String)) - throw $err - } - - $Path=ResolvePath $Path - $PSBoundParameters["Path"] = $Path - $getArguments = ExtractArguments $PSBoundParameters ("Path","Arguments","Credential") - $processes = @(GetWin32_Process @getArguments) - - - if($Ensure -eq 'Absent') - { - return ($processes.Count -eq 0) - } - else - { - return ($processes.Count -gt 0) - } -} - -function GetWin32ProcessOwner -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $process - ) - - # if the process was killed by the time this is called, GetOwner - # will throw a WMIMethodException "Not found" - try - { - $owner = Invoke-CimMethod -InputObject $process -MethodName GetOwner - } - catch - { - } - - if($owner.Domain -ne $null) - { - return $owner.Domain + "\" + $owner.User - } - else - { - return $owner.User - } -} - -function WaitForProcessCount -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path, - - [System.String] - $Arguments, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential, - - [parameter(Mandatory=$true)] - $waitCount - ) - - $start = [DateTime]::Now - do - { - $getArguments = ExtractArguments $PSBoundParameters ("Path","Arguments","Credential") - $value = @(GetWin32_Process @getArguments).Count -eq $waitCount - } while(!$value -and ([DateTime]::Now - $start).TotalMilliseconds -lt 2000) - - return $value -} - -function GetWin32_Process -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path, - - [System.String] - $Arguments, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Credential, - - $useWmiObjectCount=8 - ) - - - - $fileName = [io.path]::GetFileNameWithoutExtension($Path) - - $gpsProcesses = @(get-process -Name $fileName -ErrorAction SilentlyContinue) - - if($gpsProcesses.Count -ge $useWmiObjectCount) - { - # if there are many processes it is faster to perform a Get-WmiObject - # in order to get Win32_Process objects for all processes - $Path=WQLEscape $Path - $filter = "ExecutablePath = '$Path'" - $processes = Get-CimInstance Win32_Process -Filter $filter - } - else - { - # if there are few processes, building a Win32_Process for - # each matching result of get-process is faster - $processes = foreach($gpsProcess in $gpsProcesses) - { - if(!($gpsProcess.Path -ieq $Path)) - { - continue - } - - try - { - Write-Verbose ($LocalizedData.VerboseInProcessHandle -f $gpsProcess.Id) - Get-CimInstance Win32_Process -Filter "ProcessId=$($gpsProcess.Id)" - } - catch - { - #ignore if could not retrieve process - } - } - } - - if($PSBoundParameters.ContainsKey('Credential')) - { - $Domain, $UserName = Get-DomainAndUserName $Credential - # Since there are credentials we need to call the GetOwner method in each process to search for matches - $processes = $processes | where { (GetWin32ProcessOwner $_) -eq "$Domain\$UserName" } - - } - - if($Arguments -eq $null) {$Arguments = ""} - $processes = $processes | where { (GetProcessArgumentsFromCommandLine $_.CommandLine) -eq $Arguments } - - return $processes -} - -<# -.Synopsis - Strips the Arguments part of a commandLine. In "c:\temp\a.exe X Y Z" the Arguments part is "X Y Z". -#> -function GetProcessArgumentsFromCommandLine -{ - param - ( - [System.String] - $commandLine - ) - - if($commandLine -eq $null) - { - return "" - } - - $commandLine=$commandLine.Trim() - - if($commandLine.Length -eq 0) - { - return "" - } - - if($commandLine[0] -eq '"') - { - $charToLookfor=[char]'"' - } - else - { - $charToLookfor=[char]' ' - } - - $endofCommand=$commandLine.IndexOf($charToLookfor ,1) - if($endofCommand -eq -1) - { - return "" - } - - return $commandLine.Substring($endofCommand+1).Trim() -} - -<# -.Synopsis - Escapes a string to be used in a WQL filter as the one passed to get-wmiobject -#> -function WQLEscape -{ - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $query - ) - - return $query.Replace("\","\\").Replace('"','\"').Replace("'","\'") -} - -function ThrowInvalidArgumentError -{ - [CmdletBinding()] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $errorId, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $errorMessage - ) - - $errorCategory=[System.Management.Automation.ErrorCategory]::InvalidArgument - $exception = New-Object System.ArgumentException $errorMessage; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - throw $errorRecord -} - -function ResolvePath -{ - [CmdletBinding()] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path - ) - - $Path = [Environment]::ExpandEnvironmentVariables($Path) - - if(IsRootedPath $Path) - { - if(!(Test-Path $Path -PathType Leaf)) - { - ThrowInvalidArgumentError "CannotFindRootedPath" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f "Path",$Path), $LocalizedData.FileNotFound) - } - - return $Path - } - - if([string]::IsNullOrEmpty($env:Path)) - { - ThrowInvalidArgumentError "EmptyEnvironmentPath" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f "Path",$Path), $LocalizedData.FileNotFound) - } - - # This will block relative paths. The statement is only true id $Path contains a plain file name. - # Checking a relative path against segments of the $env:Path does not make sense - if((Split-Path $Path -Leaf) -ne $Path) - { - ThrowInvalidArgumentError "NotAbsolutePathOrFileName" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f "Path",$Path), $LocalizedData.AbsolutePathOrFileName) - } - - foreach($rawSegment in $env:Path.Split(";")) - { - $segment = [Environment]::ExpandEnvironmentVariables($rawSegment) - - # if an exception causes $segmentedRooted not to be set, we will consider it $false - $segmentRooted = $false - try - { - # If the whole path passed through [IO.Path]::IsPathRooted with no exceptions, it does not have - # invalid characters, so segment has no invalid characters and will not throw as well - $segmentRooted=[IO.Path]::IsPathRooted($segment) - } - catch {} - - if(!$segmentRooted) - { - continue - } - - $candidate = join-path $segment $Path - - if(Test-Path $candidate -PathType Leaf) - { - return $candidate - } - } - - ThrowInvalidArgumentError "CannotFindRelativePath" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f "Path",$Path), $LocalizedData.FileNotFound) -} - - -function AssertAbsolutePath -{ - [CmdletBinding()] - param - ( - $ParentBoundParameters, - - [System.String] - [Parameter (ValueFromPipeline=$true)] - $ParameterName, - - [switch] - $Exist - ) - - Process - { - if(!$ParentBoundParameters.ContainsKey($ParameterName)) - { - return - } - - $path=$ParentBoundParameters[$ParameterName] - - if(!(IsRootedPath $Path)) - { - ThrowInvalidArgumentError "PathShouldBeAbsolute" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f $ParameterName,$Path), - $LocalizedData.PathShouldBeAbsolute) - } - - if(!$Exist.IsPresent) - { - return - } - - if(!(Test-Path $Path)) - { - ThrowInvalidArgumentError "PathShouldExist" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f $ParameterName,$Path), - $LocalizedData.PathShouldExist) - } - } -} - -function AssertParameterIsNotSpecified -{ - [CmdletBinding()] - param - ( - $ParentBoundParameters, - - [System.String] - [Parameter (ValueFromPipeline=$true)] - $ParameterName - ) - - Process - { - if($ParentBoundParameters.ContainsKey($ParameterName)) - { - ThrowInvalidArgumentError "ParameterShouldNotBeSpecified" ($LocalizedData.ParameterShouldNotBeSpecified -f $ParameterName) - } - } -} - -function IsRootedPath -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path - ) - - try - { - return [IO.Path]::IsPathRooted($Path) - } - catch - { - # if the Path has invalid characters like >, <, etc, we cannot determine if it is rooted so we do not go on - ThrowInvalidArgumentError "CannotGetIsPathRooted" ($LocalizedData.InvalidArgumentAndMessage -f ($LocalizedData.InvalidArgument -f "Path",$Path), $_.Exception.Message) - } -} - -function Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/MSFT_ProcessResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/MSFT_ProcessResource.schema.mof deleted file mode 100644 index e7dca62a79850ba19bf1a0fb74ca57a8889b554d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmbtUO;5r=6r8h(|Dowg6Jq>|2R$KT?1;mJ-9f+0S@hUv5x{ATochJE`&$k6g6_6`7Lyt z5zR-KP^Cd+gdStk7XP07UF>k~YeffDG^u%qhb8>2@gj_=A`J)Uyz9hQh`lt&K9*5Z zf3r0lqB|InIkk0TB<4Isz(|Aq1W&m51GY$BKp)C7BrDFbCZ?J&RzR7UN4|Ny^sErC zb-NsugKCuJTOw1aRJBjk@ViQRx2uqg&KEtjOlM5hD&JmM4c98GE~G2D)<+jbdd=o$ zoXxoL20V2&@3(Aut8@OETK(iS=XLVvdc>;KS@DGa^<34hEa%^~%2d=|9Br+nj{eV6 z+twf09}?h-qpH(mcJejN)k%>qYoN@=#z=66)A_y)81>j)pSvyPHi>!V_u`&duTdi_ zv`TEN)UqrRdeq+C#F5Sz{Yxh}W>z=kr{{^!(@6ikV(YTWbMvQ6g_TKpv-$W5l>gOe diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.schema.mfl deleted file mode 100644 index 303732e3722ac1582c3de769f37831105b7511a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2468 zcmcImO-NKx6#fD?ML|S?3l|qNPzafRh$vc^8V&dpDK+3kOf%yTjx#dz1Wkn&4HUE} zXwjl}EfQWWbcz|laD?$GR46v>f)*}Xv~*p4=iZq{(Xpo)kGb#N`_A0+o$q|--1qC} zaSS4k0D3UMQ6b840AVD!9zc*!wWx-_aMkO395G&&eh$&1o0da}aHSe`ID`Y}<30(_ z1H8)~iuTq6zt5S?8~{QlL{4ifBHP1$1)0dZD)LWSsk3B&FsW{U20)+b+TUbqHuw6 zHfVOE5Z*#K$$2Z9(MEsf-pMtE7PO<0?^^h-79I@qXZWbYExs3wK{6g7%L&dUjw|RS zYuAW4ra6~4*L4&zW+z_AgJ5Wgt*FcQe?qLZYma1 z9~5S6e_G-2J7MGC${5!z=YB@?u@w&zljud*j#7(?aRfN;Eo9y;4we17v~Qu56@_7^ za?ZWi1|sMoTT%g0`cG`|Uq1fLejhs%w!(|W*hqj!~_j z9EhHz8yHNZ8eOU0$C)X`I*L-Ocm7z(npt%pdo%Y)Xq|>##{B%_iL|N3qi^@8ec8&C zXbn@@S)(}7qNvb4h7M+2I#!5doMSujSgd{-x6)&IJ=DzmGLj2B^S`h)6QNXke22)A z&Q`2RH`^=Lyku}UoE0^!@WjbcsluFR+1^3VxT*Q*FZ7Tm-bK4XW>0t;ajB~kj%O>D zlV`1TPQRMASu2qx&ztSkG^9OSILBUXI#>_=huCey>?j692W{?hZca4Q*UIatgr({I zzoBWPf2n3U>Gui~Y^k-~v2#Ob$6{?sm)ku<^7T?W?|KXM8)1wJRrcR{znnG}&hR@! o;p)2oHgeA){cfju^7542P9uqeMvTvmr?r<_G5(5QJaQ8M1|7~R(*OVf diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ProcessResource/ko-KR/MSFT_ProcessResource.strings.psd1 deleted file mode 100644 index ee347e53e04c1fbd241d1b044aeb6bd062555eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3276 zcmcImO>Y}j6uk=;fIy;1NLh68q*h8IQIn*Uj|x`_bpt_3shU8%hy*4!twriY_M~d5 zyJJx#7F5cDAJ7FzRu(1!+o6&>l0CLmRRuH^i!4}p!2{in6NIA7%p1RV z@44sPkNNA*W1?hU)@4-^vL&Pn{8mQz?OnUMut z$K);Cmt-7gPU8JZ{QinWO8n8?f|9$1 zmD0o7(R)gs`8n^!JSAuD^E%=xsn>ShMzK|lXiGEl5m2wg+9oWe;D`P%!&A1yO9D7k zu>NF2zBSgBJonvJ(b!kwc%PLW*pK;J^|T*YpVRRg^^;IF3(hyStqi?bU={DXd3aK|Ei1dzF!$MhN*}+cTPv1)ydYB;c3$Zy*Jy=~-!o4z%o5!3R4Z`vLPMKw=^$o<&{FtD3bm*6bUt@=;i<{=j}~dc`yp+bUAAYV(DLt&*6= z+1W8?;gP+a^C~6FdPPMzt=Q+YU0SfKEa82iY|ynB75kFf!5rS5-)3b_Y`2PqGN1M; zhM)i9k(C?v#~K*yFUWf;9A-Gzo@k4RpIwsinqIsN4mg+2YF?7yh7%+W3u{17sD4xb z5*7H{gM}aOxTT-W?6WzTFDqeRiTlS(zk-tw(eLJWRhu);P2xym=5YpY=&Q}X7onKp zHrO`@-{D<$8ZK+ZpS1Og;Z7A-VU>|wN6i}jiJ*5DzmL6H%;R-vnnEwibZPxIa1sS4 zf51AXq~C(VCeIi-vp!&%cCKok(l~3sQO@Iyndz20&Twlbm}|=W`jO36+tI@IFM_WO zsxsGCn_i7g<@72XMYK80!yNb;Y!hn!U0Iqkgsdus*WGOb@1!`PQ&s z7bfzRQec7luws}gPDS;NsM9<5(@Na`!`*j}*SkA=zib_z5u5Xa+4w(sd&Aopf`#ci rd+jgVhKt_Z{&1 - - # Report any errors - if ($retVal -and $retVal.GetType().Name -ieq "ErrorRecord") - { - throw $retVal - } - - # If the control reaches here, the key was created successfully - return (Get-TargetResourceInternal -Key $Key -Verbose:$false) -} - - -#------------------------------------------- -# Validate PSDrive specified in Registry Key -#------------------------------------------- -FUNCTION ValidatePSDrive -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Key - ) - - # Extract the PSDriveName from the specified Key - $psDriveName = $Key.Substring(0, $Key.IndexOf(':')) - - # Query the specified PSDrive - $psDrive = Get-PSDrive $psDriveName -ErrorAction SilentlyContinue - - # Validate that the specified psdrive is a valid - if (($psDrive -eq $null) -or ($psDrive.Provider -eq $null) -or ($psDrive.Provider.Name -ine "Registry") -or !(IsValidRegistryRoot -PSDriveRoot $psDrive.Root)) - { - $errorMessage = $localizedData.InvalidPSDriveSpecified -f $psDriveName, $Key - ThrowError -ExceptionName "System.ArgumentException" -ExceptionMessage $errorMessage -ExceptionObject $Key -ErrorId "InvalidPSDrive" -ErrorCategory InvalidArgument - } -} - - -#-------------------------------------------------- -# Check if the PSDriveRoot is a valid registry root -#-------------------------------------------------- -FUNCTION IsValidRegistryRoot -{ - param - ( - [System.String] - $PSDriveRoot - ) - - # List of valid registry roots - $validRegistryRoots = @("HKEY_CLASSES_ROOT", "HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE", "HKEY_USERS", "HKEY_CURRENT_CONFIG") - - # Extract the base of the PSDrive root - if ($PSDriveRoot.Contains('\')) - { - $PSDriveRoot = $PSDriveRoot.Substring(0, $PSDriveRoot.IndexOf('\')) - } - - return ($validRegistryRoots -icontains $PSDriveRoot) -} - - -#---------------------------------------- -# Utility to write WhatIf or Verbose logs -#---------------------------------------- -FUNCTION Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - - -#------------------------------------ -# Utility to throw an error/exception -#------------------------------------ -FUNCTION ThrowError -{ - [CmdletBinding()] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ExceptionName, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ExceptionMessage, - - [System.Object] - $ExceptionObject, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Management.Automation.ErrorCategory] - $ErrorCategory - ) - - $exception = New-Object $ExceptionName $ExceptionMessage; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $ErrorId, $ErrorCategory, $ExceptionObject - throw $errorRecord -} - - -#---------------------------------------------------------------------- -# Utility to construct a strongly-typed object based on specified $Type -#---------------------------------------------------------------------- -FUNCTION GetTypedObject -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Type, - - [System.String[]] - $Data, - - [ValidateNotNull()] - [Boolean] - $Hex, - - [ref] $ReturnValue - ) - - $ArgumentExceptionScriptBlock = - { - Param($ErrorId) - - $errorMessage = $localizedData.ParameterValueInvalid -f "ValueData", (ArrayToString -Value $Data), $Type - Write-Verbose $errorMessage - ThrowError -ExceptionName "System.ArgumentException" -ExceptionMessage $errorMessage -ExceptionObject $Data -ErrorId $ErrorId -ErrorCategory InvalidArgument - } - - # The the $Type specified is not a multistring then we always expect a non-array $Data. If this is not the case, throw an error and let the user know. - if (($Type -ine "Multistring") -and ($Data -ne $null) -and ($Data.Count -gt 1)) - { - Invoke-Command -ScriptBlock $ArgumentExceptionScriptBlock -ArgumentList ([String]::Format("ArrayNotExpectedForType{0}", $Type)) - } - - Switch($Type) - { - # Case: String - "String" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [String]::Empty - - return - } - - $ReturnValue.Value = [String]$Data[0] - } - - # Case: ExpandString - "ExpandString" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [String]::Empty - - return - } - - $ReturnValue.Value = [String]$Data[0] - } - - # Case: MultiString - "MultiString" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [String[]]@() - - return - } - - $ReturnValue.Value = [String[]]$Data - } - - # Case: DWord - "DWord" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [Int32]0 - } - elseif ($Hex) - { - $retVal = $null - $val = $Data[0].TrimStart("0x") - - if ([Int32]::TryParse($val, "HexNumber", [System.Globalization.CultureInfo]::CurrentCulture, [ref] $retVal)) - { - $ReturnValue.Value = $retVal - } - else - { - Invoke-Command -ScriptBlock $ArgumentExceptionScriptBlock -ArgumentList "ValueDataNotInHexFormat" - } - } - else - { - $ReturnValue.Value = [Int32]::Parse($Data[0]) - } - } - - # Case: QWord - "QWord" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [Int64]0 - } - elseif ($Hex) - { - $retVal = $null - $val = $Data[0].TrimStart("0x") - - if ([Int64]::TryParse($val, "HexNumber", [System.Globalization.CultureInfo]::CurrentCulture, [ref] $retVal)) - { - $ReturnValue.Value = $retVal - } - else - { - Invoke-Command -ScriptBlock $ArgumentExceptionScriptBlock -ArgumentList "ValueDataNotInHexFormat" - } - } - else - { - $ReturnValue.Value = [Int64]::Parse($Data[0]) - } - } - - # Case: Binary - "Binary" - { - if (($Data -eq $null) -or ($Data.Length -eq 0)) - { - $ReturnValue.Value = [Byte[]]@() - - return - } - - $binaryVal = $null - $val = $Data[0].TrimStart("0x") - if ($val.Length % 2 -ne 0) - { - $val = $val.PadLeft($val.Length+1, "0") - } - - try - { - $byteArray = [Byte[]]@() - - for ($i = 0 ; $i -lt ($val.Length-1) ; $i = $i+2) - { - $byteArray += [Byte]::Parse($val.Substring($i, 2), "HexNumber") - } - - $ReturnValue.Value = [Byte[]]$byteArray - } - catch [Exception] - { - Invoke-Command -ScriptBlock $ArgumentExceptionScriptBlock -ArgumentList "ValueDataNotInHexFormat" - } - } - } -} - - -#------------------------------------------------------- -# Utility to convert an array to a string representation -#------------------------------------------------------- -FUNCTION ArrayToString -{ - param - ( - [parameter(Mandatory = $true)] - [AllowEmptyCollection()] - [ValidateNotNull()] - [object[]] - $Value - ) - - if (!$Value.GetType().IsArray) - { - return $Value.ToString() - } - if ($Value.Length -eq 1) - { - return $Value[0].ToString() - } - - [System.Text.StringBuilder]$retString = "(" - - $Value | % {$retString = ($retString.ToString() + $_.ToString() + ", ")} - - $retString = $retString.ToString().TrimEnd(", ") + ")" - - return $retString.ToString() -} - - -#------------------------------------------------------- -# Utility to convert an array to a string representation -#------------------------------------------------------- -FUNCTION ConvertByteArrayToHexString -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Object] - $Data - ) - - $retString = "" - $Data | % {$retString += [String]::Format("{0:x2}", $_)} - - return $retString -} - - -#-------------------------------------------------------------- -# Utility to handle the display name for the (Default) RegValue -#-------------------------------------------------------------- -FUNCTION GetValueDisplayName -{ - param - ( - [System.String] - $ValueName - ) - - if ([String]::IsNullOrEmpty($ValueName)) - { - return $localizedData.DefaultValueDisplayName - } - - return $ValueName -} - - -#--------------------------------------------------------- -# Utility to mount the optional Registry hives as PSDrives -#--------------------------------------------------------- -FUNCTION MountRequiredRegistryHives -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $KeyName - ) - - $psDriveNames = (Get-PSDrive).Name.ToUpperInvariant() - - if ($KeyName.StartsWith("HKCR","OrdinalIgnoreCase") -and !$psDriveNames.Contains("HKCR")) - { - New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -Scope "Script" -WhatIf:$false | Out-Null - } - elseif ($KeyName.StartsWith("HKUS","OrdinalIgnoreCase") -and !$psDriveNames.Contains("HKUS")) - { - New-PSDrive -Name HKUS -PSProvider Registry -Root HKEY_USERS -Scope "Script" -WhatIf:$false | Out-Null - } - elseif ($KeyName.StartsWith("HKCC","OrdinalIgnoreCase") -and !$psDriveNames.Contains("HKCC")) - { - New-PSDrive -Name HKCC -PSProvider Registry -Root HKEY_CURRENT_CONFIG -Scope "Script" -WhatIf:$false | Out-Null - } - elseif ($KeyName.StartsWith("HKCU","OrdinalIgnoreCase") -and !$psDriveNames.Contains("HKCU")) - { - New-PSDrive -Name HKCU -PSProvider Registry -Root HKEY_CURRENT_USER -Scope "Script" -WhatIf:$false | Out-Null - } - elseif ($KeyName.StartsWith("HKLM","OrdinalIgnoreCase") -and !$psDriveNames.Contains("HKLM")) - { - New-PSDrive -Name HKLM -PSProvider Registry -Root HKEY_LOCAL_MACHINE -Scope "Script" -WhatIf:$false | Out-Null - } -} - - -#--------------------------------------------------------- -# Utility to mount the optional Registry hives as PSDrives -#--------------------------------------------------------- -FUNCTION SetupProvider -{ - param - ( - [ValidateNotNull()] - [ref] $KeyName - ) - - # Fix $KeyName if required - if (!$KeyName.Value.ToString().Contains(":")) - { - if ($KeyName.Value.ToString().StartsWith("hkey_users","OrdinalIgnoreCase")) - { - $KeyName.Value = $KeyName.Value.ToString() -replace "hkey_users", "HKUS:" - } - elseif ($KeyName.Value.ToString().StartsWith("hkey_current_config","OrdinalIgnoreCase")) - { - $KeyName.Value = $KeyName.Value.ToString() -replace "hkey_current_config", "HKCC:" - } - elseif ($KeyName.Value.ToString().StartsWith("hkey_classes_root","OrdinalIgnoreCase")) - { - $KeyName.Value = $KeyName.Value.ToString() -replace "hkey_classes_root", "HKCR:" - } - elseif ($KeyName.Value.ToString().StartsWith("hkey_local_machine","OrdinalIgnoreCase")) - { - $KeyName.Value = $KeyName.Value.ToString() -replace "hkey_local_machine", "HKLM:" - } - elseif ($KeyName.Value.ToString().StartsWith("hkey_current_user","OrdinalIgnoreCase")) - { - $KeyName.Value = $KeyName.Value.ToString() -replace "hkey_current_user", "HKCU:" - } - else - { - $errorMessage = $localizedData.InvalidRegistryHiveSpecified -f $Key - ThrowError -ExceptionName "System.ArgumentException" -ExceptionMessage $errorMessage -ExceptionObject $KeyName -ErrorId "InvalidRegistryHive" -ErrorCategory InvalidArgument - } - } - - # Mount any required registry hives - MountRequiredRegistryHives -KeyName $KeyName.Value.ToString() - - # Check the target PSDrive to be a valid Registry Hive root - ValidatePSDrive -Key $KeyName.Value.ToString() -} - -#---------------------------------------------------------------------------------------- -# Refactored utility to decide if the ValueData specified matches the ValueData retrieved -#---------------------------------------------------------------------------------------- -FUNCTION ValueDataMatches -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Object] - $RetrievedValue, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ValueType, - - [System.String[]] - $ValueData - ) - - # Convert the specified $ValueData into strongly-typed data for correct comparsion - $specifiedData = $null - $retrievedData = $RetrievedValue.Data - - GetTypedObject -Type $ValueType -Data $ValueData -Hex $Hex -ReturnValue ([ref]$specifiedData) - - # Special case for binary comparison (do hex-string comparison) - if ($ValueType -ieq "Binary") - { - $specifiedData = $ValueData[0].PadLeft($retrievedData.Length, '0') - } - - # If the ValueType is not multistring, do a simple comparison - if ($ValueType -ine "Multistring") - { - return ($specifiedData -ieq $retrievedData) - } - - # IF THE CONTROL REACHES HERE, THE ValueType IS A "MultiString" and we need a size-based and element-by-element comparsion for it - - # Array-size comparison - if ($specifiedData.Length -ne $retrievedData.Length) - { - # Size mismatch - return $false - } - - # Element-by-Element comparison - for ($i = 0 ; $i -lt $specifiedData.Length ; $i++) - { - if ($specifiedData[$i] -ine $retrievedData[$i]) - { - return $false - } - } - - # IF THE CONTROL REACHED HERE, THE Multistring COMPARISON WAS SUCCESSFUL - return $true -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/MSFT_RegistryResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RegistryResource/MSFT_RegistryResource.schema.mof deleted file mode 100644 index 4a40e1c1e02df8edc5cedd874f0875f118de022c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmd6mOH0E*6ot=P@IQoEStz1gU8!wRBtA=B1d+6c5{PYSA~s0>y86weOZQW45mMCO;SX4QI$_+xxB`9d@{Am79cANxIu#Fe zplg`9Q!X-z$#%$1aelf3vWHSa7ExK>I_t@Kka26P+tgSwTg1p10jPR*6UUc2KC1~; z7`(CW6*(K{xuJ5q4;QZ5J{Yz1fm2iZuteQgPJC)eh!@vJZEJ>R=z6)SI!AYvTl$ak z`pxk!U7ygEzqoyegZ9nY7oC+(o~gffR_DfUylS>>bW-=ex8-R$eL6d)bCK(gr%P6| TEp^r5JMLxJKdA6xzLf+?1}!8~(j+Z~HVMgBY-tM)78G0r z2mgR9!sn6{O(cQjqn}9@NyTLA*1^HCgOhshd)7v(64LUK_w(l5bI-f?{`h_dNu&_Q zEEYH_#5pb?hBVK^h;TK4euRE~gL+OO!Ozm`C@p4axrlk5^uvpjIF32uq`41s77RuE z8IDu@4tiK=^LvFDw=qGx3mC$A?k;1EKS4cOt`gIqo(y;K6og-E5TQ16RKntzAal{e zsw&up=ar1}GOO@F#~S7BBSx%nEMKl?oct%d&~W=I3fGBa;T&%!^h)7WQ6ZqwEuOxp zx~`vyz0R}dWK$56IpUXJfADV9vOC#9t*OE#+79cNi9kz`?0}WvuV^od)N1)AThV>Z6f%uTs!_5-`Sq%aKSbRnul}Zi#ADb>#?5kP zyqSFI&c8yBEgY=slR|eK?o*k0sutthm}+Y0)2R-7Jd!!9>f1Uj6F-?qJqDQr-LWw| zL>W(O+c_+s0COTqg*xLh*(%uz zS}iD?t*pN{HMQ#|ZBI)SZRdTLc`cnT#@w-(vrnNOlD?MR|HEi}hwsebaXR~M`JJEdg?%SL8sQ$-mn$?_OZpN4i oamI0jtECR#z+?B-6n5CBgh9FPsT~D_QSvd}#bm->ua_?J6Nayp!T+UYH&kB(gll2AfYU*6hxzeL}NizKw{B!L87D-XhN}R2Lg(FK7kKl zSzSPl6wuTrWlG`#HFfQRrS4g&=gxF|Gi6#@W17C{^xb#wx#!$>-~0Wm0~$v098pYT z0dc%Q3^TZZAbN2HJ-E)Xm(L(>&@#x+P4sira2sPB{kY5LB)Yk#k9K{WzlH#=@^`>o z*>8>-=f@DnFm0dW5u?m8S{gc1ST*0%M6txTDCYu|nK%|{m*#tt;|$|o!bNyv*0?rC zE9E6ke6xH{@u^}D(dRN_r#Q2S1lKGQg&=aSl{oUfV_Ge9Hbtvpb5#PDnTa5`@P){o z&aZ}B=&B&>Aj%0^jp8AFh^Gl!r1+JHy6Nu;-xip24EIb-mI5;vB&(eVkz6-DcHt$N ze8s1R<6L`2Lw?^^I4W8*y_FfwX!|DrVSB2qVZ+$lZO>X3!HPv|MmIF98*dAxt>dkL ziO3yQ(1y&MB-=0?su=x;Hg@@{h?pzyH%Z~x08@5{Uvf5{-nP?7=VnAW}l>3>j7opM0^!9yhDq3A@ zvJ(^RhqC*uU1{k$$*vLOr}>z&7bE3!toqF(*?FozY4j$YTTTNFE#-}OC$BAwY;ldN z+DpmIGxj=P!MRHMY%P@DoQof?8c@8bsuSDlUR5hv^IRxxC64!QKOOC?8n2a~yT+T% zQAKSuPj|dVbDe`#VIkInoX_KY>KMWbyRO_F22br>FWnAYeMva9{VGrC27RdtwQJ3J z9=QFOEt@k)&Ey$SHBM_jp}1)oGZ5`%D)$1O7Tf{a=9Cf znHnT`#^~l*Gw8@ugXAu!S))1Ck7?hq{zpvdIf{3u8g2|B<~YmjmUzDFjx#@G=AGof h(_~_tqul7^&erqhWWSZ&L@Gn>f7Lg@F5VAi?hik?Darr< diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.psm1 deleted file mode 100644 index 1028272..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.psm1 +++ /dev/null @@ -1,538 +0,0 @@ -data LocalizedData -{ - # culture="en-US" - ConvertFrom-StringData @' -SetTargetResourceInstallwhatIfMessage=Trying to install feature {0} -SetTargetResourceUnInstallwhatIfMessage=Trying to Uninstall feature {0} -FeatureNotFoundError=The requested feature {0} is not found on the target machine. -FeatureDiscoveryFailureError=Failure to get the requested feature {0} information from the target machine. Wildcard pattern is not supported in the feature name. -FeatureInstallationFailureError=Failure to successfully install the feature {0} . -FeatureUnInstallationFailureError=Failure to successfully Unintstall the feature {0} . -QueryFeature=Querying for feature {0} using Server Manager cmdlet Get-WindowsFeature. -InstallFeature=Trying to install feature {0} using Server Manager cmdlet Add-WindowsFeature. -UninstallFeature=Trying to Uninstall feature {0} using Server Manager cmdlet Remove-WindowsFeature. -RestartNeeded=The Target machine needs to be restarted. -GetTargetResourceStartVerboseMessage=Begin executing Get functionality on the {0} feature. -GetTargetResourceEndVerboseMessage=End executing Get functionality on the {0} feature. -SetTargetResourceStartVerboseMessage=Begin executing Set functionality on the {0} feature. -SetTargetResourceEndVerboseMessage=End executing Set functionality on the {0} feature. -TestTargetResourceStartVerboseMessage=Begin executing Test functionality on the {0} feature. -TestTargetResourceEndVerboseMessage=End executing Test functionality on the {0} feature. -ServerManagerModuleNotFoundDebugMessage=ServerManager module is not installed on the machine. -SkuNotSupported=Installing roles and features using PowerShell Desired State Configuration is supported only on Server SKU's. It is not supported on Client SKU. -SourcePropertyNotSupportedDebugMessage=Source property in MSFT_RoleResource is not supported on this operating system and it was ignored. -EnableServerManagerPSHCmdletsFeature=Windows Server 2008R2 Core operating system detected: ServerManager-PSH-Cmdlets feature has been enabled. -UninstallSuccess=Successfully uninstalled the feature {0}. -InstallSuccess=Successfully installed the feature {0}. -'@ -} - -Import-LocalizedData LocalizedData -filename MSFT_RoleResourceStrings - -# The Get-TargetResource cmdlet is used to fetch the status of role or feature on the target machine. -# It gives the feature info of the requested role/feature on the target machine. -function Get-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $Name, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.PSCredential] - $Credential - ) - - $getTargetResourceResult = $null; - - $getTargetResourceStartVerboseMessage = $($LocalizedData.GetTargetResourceStartVerboseMessage) -f ${Name} ; - Write-Debug -Message $getTargetResourceStartVerboseMessage; - - ValidatePrerequisites ; - - $qyeryFeatureMessage = $($LocalizedData.QueryFeature) -f ${Name} ; - Write-Debug -Message $qyeryFeatureMessage; - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $feature = Invoke-Command -ScriptBlock { Get-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable ev - $psboundparameters.Add("Credential", $Credential); - } - else - { - $feature = Get-WindowsFeature @psboundparameters -ErrorVariable ev - } - - if($null -eq $ev -or $ev.Count -eq 0) - { - $foundError = $false; - - ValidateFeature $feature $Name; - - # If a feature does not contain SubFeature then $includeAllSubFeature would be set to $false. - # If a feature contains one or more subfeatures then $includeAllSubFeature would be set to - # $true only if all the subfeatures are installed, or else $includeAllSubFeature would be set to $false. - $includeAllSubFeature = $true; - - if($feature.SubFeatures.Count -eq 0) - { - $includeAllSubFeature = $false; - } - else - { - foreach($currentSubFeature in $feature.SubFeatures) - { - if($foundError -eq $false) - { - $parameters = $psboundparameters.Remove("Name"); - $psboundparameters.Add("Name", $currentSubFeature); - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $subFeature = Invoke-Command -ScriptBlock { Get-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable errorVar - $psboundparameters.Add("Credential", $Credential); - } - else - { - $subFeature = Get-WindowsFeature @psboundparameters -ErrorVariable errorVar - } - - if($null -eq $errorVar -or $errorVar.Count -eq 0) - { - ValidateFeature $subFeature $currentSubFeature; - - if(!$subFeature.Installed) - { - $includeAllSubFeature = $false; - break; - } - } - else - { - $foundError = $true;; - } - } - } - } - - if($foundError -eq $false) - { - if($feature.Installed) - { - $ensureResult = "Present"; - } - else - { - $ensureResult = "Absent"; - } - - # Add all feature properties to the hash table - $getTargetResourceResult = @{ - Name = $feature.Name; - DisplayName = $feature.DisplayName; - Ensure = $ensureResult; - IncludeAllSubFeature = $includeAllSubFeature; - } - - $getTargetResourceEndVerboseMessage = $($LocalizedData.GetTargetResourceEndVerboseMessage) -f ${Name} ; - Write-Debug -Message $getTargetResourceEndVerboseMessage; - - $getTargetResourceResult; - } - } -} - - -# The Set-TargetResource cmdlet is used to install or uninstall a role on the target machine. -# It also supports installing & uninstalling the role or feature specific subfeatures. -function Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true, DefaultParameterSetName = "FeatureName")] - - param - ( - [parameter(Mandatory=$true, ParameterSetName = "FeatureName")] - [ValidateNotNullOrEmpty()] - [string] - $Name, - - [parameter()] - [ValidateSet("Present", "Absent")] - [string] - $Ensure = "Present", - - [parameter()] - [ValidateNotNullOrEmpty()] - [string] - $Source, - - [parameter()] - [switch] - $IncludeAllSubFeature, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.PSCredential] - $Credential, - - [ValidateNotNullOrEmpty()] - [string] - $LogPath - ) - - $getTargetResourceResult = $null; - - $inputParameter = $null; - - $setTargetResourceStartVerboseMessage = $($LocalizedData.SetTargetResourceStartVerboseMessage) -f ${Name} ; - Write-Debug -Message $setTargetResourceStartVerboseMessage; - - ValidatePrerequisites ; - - # -Source Parameter is not applicable to Windows Server 2008 R2 SP1. Hence removing it. - # all role/feature spcific binaries are avaliable inboc on Windows Server 2008 R2 SP1, hence - # -Source is not supported on Windows Server 2008 R2 SP1. - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Source")) - { - $sourcePropertyNotSupportedDebugMessage = $($LocalizedData.SourcePropertyNotSupportedDebugMessage) ; - Write-Debug -Message $sourcePropertyNotSupportedDebugMessage; - - $parameters = $psboundparameters.Remove("Source"); - } - - - if($Ensure -eq "Present") - { - $parameters = $psboundparameters.Remove("Ensure"); - - $installFeatureMessage = $($LocalizedData.InstallFeature) -f ${Name} ; - Write-Debug -Message $installFeatureMessage; - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $feature = Invoke-Command -ScriptBlock { Add-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable ev - $psboundparameters.Add("Credential", $Credential); - } - else - { - $feature = Add-WindowsFeature @psboundparameters -ErrorVariable ev - } - - if($feature -ne $null -and $feature.Success -eq $true) - { - Write-Verbose ($LocalizedData.InstallSuccess -f $Name) - - # Check if reboot is required, if so notify CA. - if($feature.RestartNeeded -eq "Yes") - { - $restartNeededMessage = $($LocalizedData.RestartNeeded); - Write-Verbose -Message $restartNeededMessage; - - $global:DSCMachineStatus = 1; - } - } - else - { - # Add-WindowsFeature cmdlet falied to successfully install the requested feature. - # If there are errors from the Add-WindowsFeature cmdlet. We surface those errors. - # If Add-WindwosFeature cmdlet does not surface any errors. Then the provider throws a - # terminating error. - if($null -eq $ev -or $ev.Count -eq 0) - { - $errorId = "FeatureInstallationFailure"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation; - $errorMessage = $($LocalizedData.FeatureInstallationFailureError) -f ${Name} ; - $exception = New-Object System.InvalidOperationException $errorMessage ; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - } - } - else - { - $parameters = $psboundparameters.Remove("Ensure"); - $parameters = $psboundparameters.Remove("IncludeAllSubFeature"); - $parameters = $psboundparameters.Remove("Source"); - - $uninstallFeatureMessage = $($LocalizedData.UninstallFeature) -f ${Name} ; - Write-Debug -Message $uninstallFeatureMessage; - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $feature = Invoke-Command -ScriptBlock { Remove-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable ev - $psboundparameters.Add("Credential", $Credential); - } - else - { - $feature = Remove-WindowsFeature @psboundparameters -ErrorVariable ev - } - - if($feature -ne $null -and $feature.Success -eq $true) - { - Write-Verbose ($LocalizedData.UninstallSuccess -f $Name) - - # Check if reboot is required, if so notify CA. - if($feature.RestartNeeded -eq "Yes") - { - $restartNeededMessage = $($LocalizedData.RestartNeeded); - Write-Verbose -Message $restartNeededMessage; - - $global:DSCMachineStatus = 1; - } - } - else - { - # Remove-WindowsFeature cmdlet falied to successfully Uninstall the requested feature. - # If there are errors from the Remove-WindowsFeature cmdlet. We surface those errors. - # If Remove-WindwosFeature cmdlet does not surface any errors. Then the provider throws a - # terminating error. - if($null -eq $ev -or $ev.Count -eq 0) - { - $errorId = "FeatureUnInstallationFailure"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation; - $errorMessage = $($LocalizedData.FeatureUnInstallationFailureError) -f ${Name} ; - $exception = New-Object System.InvalidOperationException $errorMessage ; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - } - } - - $setTargetResourceEndVerboseMessage = $($LocalizedData.SetTargetResourceEndVerboseMessage) -f ${Name} ; - Write-Debug -Message $setTargetResourceEndVerboseMessage; -} - -# The Test-TargetResource cmdlet is used to validate if the role or feature is in a state as expected in the instance document. -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $Name, - - [parameter()] - [ValidateSet("Present", "Absent")] - [string] - $Ensure = "Present", - - [parameter()] - [ValidateNotNullOrEmpty()] - [string] - $Source, - - [parameter()] - [switch] - $IncludeAllSubFeature, - - [Parameter()] - [System.Management.Automation.PSCredential] - $Credential, - - [ValidateNotNullOrEmpty()] - [string] - $LogPath - - ) - - $testTargetResourceStartVerboseMessage = $($LocalizedData.TestTargetResourceStartVerboseMessage) -f ${Name} ; - Write-Debug -Message $testTargetResourceStartVerboseMessage; - - ValidatePrerequisites ; - - $testTargetResourceResult = $false; - - $parameters = $psboundparameters.Remove("Ensure"); - $parameters = $psboundparameters.Remove("IncludeAllSubFeature"); - $parameters = $psboundparameters.Remove("Source"); - - $qyeryFeatureMessage = $($LocalizedData.QueryFeature) -f ${Name} ; - Write-Debug -Message $qyeryFeatureMessage; - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $feature = Invoke-Command -ScriptBlock { Get-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable ev - $psboundparameters.Add("Credential", $Credential); - } - else - { - $feature = Get-WindowsFeature @psboundparameters -ErrorVariable ev - } - - - if($null -eq $ev -or $ev.Count -eq 0) - { - ValidateFeature $feature $Name; - - - # Check if the feature is in the requested Ensure state. - # If so then check if then check if the subfeature is in the requested Ensure state. - if(($Ensure -eq "Present" -and $feature.Installed -eq $true) -or - ($Ensure -eq "Absent" -and $feature.Installed -eq $false)) - { - $testTargetResourceResult = $true; - - # IncludeAllSubFeature is set to $true, so we need to make - # sure that all Sub Features are alsi installed. - if($IncludeAllSubFeature) - { - - foreach($currentSubFeature in $feature.SubFeatures) - { - $parameters = $psboundparameters.Remove("Name"); - $parameters = $psboundparameters.Remove("Ensure"); - $parameters = $psboundparameters.Remove("IncludeAllSubFeature"); - $parameters = $psboundparameters.Remove("Source"); - $psboundparameters.Add("Name", $currentSubFeature); - - $isR2Sp1 = IsWinServer2008R2SP1; - if($isR2Sp1 -and $psboundparameters.ContainsKey("Credential")) - { - $parameters = $psboundparameters.Remove("Credential"); - $subFeature = Invoke-Command -ScriptBlock { Get-WindowsFeature @using:psboundparameters } -ComputerName . -Credential $Credential -ErrorVariable errorVar - $psboundparameters.Add("Credential", $Credential); - } - else - { - $subFeature = Get-WindowsFeature @psboundparameters -ErrorVariable errorVar - } - - - if($null -eq $errorVar -or $errorVar.Count -eq 0) - { - ValidateFeature $subFeature $currentSubFeature; - - if(!$subFeature.Installed) - { - $testTargetResourceResult = $false; - break; - } - } - } - } - } - - $testTargetResourceEndVerboseMessage = $($LocalizedData.TestTargetResourceEndVerboseMessage) -f ${Name} ; - Write-Debug -Message $testTargetResourceEndVerboseMessage; - - $testTargetResourceResult; - } -} - - -# ValidateFeature is a helper function used to validate the results of SM+ cmdlets -# Get-Windowsfeature for the user supplied feature name. -function ValidateFeature -{ - param - ( - [object] $feature, - - [string] $Name - ) - - if($null -eq $feature) - { - $errorId = "FeatureNotFound"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation - $errorMessage = $($LocalizedData.FeatureNotFoundError) -f ${Name} - $exception = New-Object System.InvalidOperationException $errorMessage - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - - # WildCard pattern is not supported by the role provider. - # Hence we restrict user to request only one feature information in a single request. - if($feature.Count -gt 1) - { - $errorId = "FeatureDiscoveryFailure"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidResult - $errorMessage = $($LocalizedData.FeatureDiscoveryFailureError) -f ${Name} - $exception = New-Object System.InvalidOperationException $errorMessage - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } -} - -# ValidatePrerequisites is a helper function used to validate if the MSFT_RoleResource is supported on the target machine. -# MSFT_RoleResource is supported only on Server SKU's. MSFT_RoleResource depend on ServerManagerModule which is avaliable -# only on Server SKU's. -function ValidatePrerequisites -{ - param - ( - ) - - #Enable ServerManager-PSH-Cmdlets feature if os is WS2008R2 Core. - $datacenterServerCore = 12 - $standardServerCore = 13 - $EnterpriseServerCore = 14 - - $operatingSystem = Get-WmiObject -Class Win32_operatingsystem - if($operatingSystem.Version.StartsWith('6.1.') -and - (($operatingSystem.OperatingSystemSKU -eq $datacenterServerCore) -or ($operatingSystem.OperatingSystemSKU -eq $standardServerCore) -or ($operatingSystem.OperatingSystemSKU -eq $EnterpriseServerCore))) - { - Write-Verbose -Message $($LocalizedData.EnableServerManagerPSHCmdletsFeature) - - # Update:ServerManager-PSH-Cmdlets has a depndency on Powershell 2 update: MicrosoftWindowsPowerShell - # Hence enabling MicrosoftWindowsPowerShell. - dism /online /enable-feature /FeatureName:MicrosoftWindowsPowerShell | Out-Null - dism /online /enable-feature /FeatureName:ServerManager-PSH-Cmdlets | Out-Null - } - - if(Import-Module ServerManager -PassThru -Verbose:$false -ErrorAction Ignore) - { - } - else - { - - $serverManagerModuleNotFoundDebugMessage = $($LocalizedData.ServerManagerModuleNotFoundDebugMessage); - Write-Debug -Message $serverManagerModuleNotFoundDebugMessage; - - $errorId = "SkuNotSupported"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation - $errorMessage = $($LocalizedData.SkuNotSupported) - $exception = New-Object System.InvalidOperationException $errorMessage - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } -} - - -# IsWinServer2008R2SP1 is a helper function to detect if the target machine is a Win 2008 R2 SP1. -function IsWinServer2008R2SP1 -{ - param - ( - ) - - # We are already checking for the Presence of ServerManager module before using this helper function. - # Hence checking for the version shoudl be good enough to confirm that the target machine is - # Windows Server 2008 R2 machine. - if([Environment]::OSVersion.Version.ToString().Contains("6.1.")) - { - return $true; - } - - return $false; -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/MSFT_RoleResource.schema.mof deleted file mode 100644 index 7fea155ae81100ba146e14297fd86fec68592021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1306 zcmb7^Pfy!G5XI+=)bFrzFGY$FT+1o^iBz>I6;yCY5Hg8FEIDozI}Hf&)!Y8w*p3qd zhss*-X7x{wrFz(q;yR%EU zWgstEs#t#NQn1gg3y@zxojBKBl;S>n^ZU+wZnvSWuE)fEl9A=uMW-FgD*58~n>|$Hm)NcYes-%i_@8>|&NsSR!(^buZeZhOe zx$T+I1=hqK;gS%k$yb68rkKLyUZWT&miTDOQk=BZ{1PwWrN$9w`6bMD$o_-u;;QQ8 z@$B3uAeY1}?FCzKWS6WhuCZ3?xCUQ!q0ebfl;~CD$Tg&1woxLYchFwrTl|OL?tIUw zpm6OZwmD;|DyFJkk2CM`9Om(co;Q74ee8N)(c?y`@B7??swN%7FQDX{8K_s%NS9N_ zcd(=@+h5K55w}(Sjpz^bTH2Xz)!lOM*g3P8X2za%>?{;VoSOfm_Io^aO^BZ~k%G$B TU-5SKw~!U{mzqoSZ=?MmWMbhB diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResource.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResource.schema.mfl deleted file mode 100644 index ce43b8931e99f8d3d94452a5b146aad781cdf041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmd5)!Ae3=5IyT4>H}O1)*?Z~qE*qt(jce=bsbLd^pZem zk%8r^+PG`kwm*pK%zX-lKM=#bd+&K?=FXin-(ORxpo%;WQ07-)^IJv{4)Ht++|3|} z?SVziTE!u)X7*)RWGUj%_XlX5sEs`$b>bQwH#sdbi^S99<>^JNkYh8>Vg*O0k{b7l z1rfqH#!M#1@NH9%n0o{{+Gw@SUvF4qjxz7hVIH%X<7pAcbj|vI->u#HTeaT@t$J(F zNA0*pg@(OSjcQKul+C=sfzjC&^qR RYuQAOvNUhgWFIQ7$PdO+n_vI{ diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResourceStrings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_RoleResource/ko-KR/MSFT_RoleResourceStrings.psd1 deleted file mode 100644 index a517a1b2561a0d7b35b797433a218f774eadc9aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3360 zcmcInzi%657=Ai}R3U~+89aPaBQ+Ts;xvV}Y7iA}+Co!8-GYarHjP8DaP7#x5CKMF zXr(eBfz*GY5=ah%a|k=_;IpvrB3Y?Rdz*(285qh|HUvEHolo|if3*q7y6?`u?|a|p zecqq`=kJ41IFB?Iv4A8J_yS9a<0XVKh1W2NH@Hsm9>#I*4D)jWN4YAT!W`EzoZa z6|Qk=+mDyg8>xB@seU;k>uu^x;WKK?P~$AuG;ZLqPk)4rXuK5O!l4#|gG4dUUFY#0 zWr(CGWoWc%fijkz=b%mJs4446O48;veB#JGhmVO|tk3ehoSeazyzt3Xd6D zf(@gr@NE0{$CD2m)sUfZr?y_dV!O7fmZcGM47t)cEq=2u_Ks8(YSo`BZA<+cBaDnJ z<0Rek+~?H3z~7QBM8gq;bUy-x1J<+qxsn3%$E?v>c}wBm=55=<;O*ATo25qePJyvd z%b87G+ip_Q*rVx(8gZAm8nqE!&b~7Mz26_gV}h2X2H4O$9)cJp3jI8Fdw)0D!p5KZ zeb!0yN>Ra$h+dlCC-;&?;)~Acm_f+6d7r$l=S$y_qebRd+{t;3{yxLK8uRT#C)eZT zVU3>kOAxQ*%Rkm)_S32tG40&=>p{L0v&AE?Zrw855#wjsFL5xYQ^XhF6DBubyD^DB z61>_~;6-prJ-N|}`Moga`mh_FTd$(fD%P^!DDaTzij)LB=ggO2NN6<5$2xnDH1SS|jhIA3}DK# b%su{YKkU5pXa9Mb=Ytcy$UVfFU+(_`xO}o| diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.psm1 deleted file mode 100644 index 2480853..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.psm1 +++ /dev/null @@ -1,326 +0,0 @@ - -data LocalizedData -{ - # culture="en-US" - ConvertFrom-StringData @' -SetScriptWhatIfMessage=Executing the SetScript with the user supplied credential -InValidResultFromGetScriptError=Failure to get the results from the script in a hash table format. -InValidResultFromTestScriptError=Failure to get a valid result from the execution of TestScript. The Test script should return True or False. -ScriptBlockProviderScriptExecutionFailureError=Failure to successfully execute the script. -GetTargetResourceStartVerboseMessage=Begin executing Get Script. -GetTargetResourceEndVerboseMessage=End executing Get Script. -SetTargetResourceStartVerboseMessage=Begin executing Set Script. -SetTargetResourceEndVerboseMessage=End executing Set Script. -TestTargetResourceStartVerboseMessage=Begin executing Test Script. -TestTargetResourceEndVerboseMessage=End executing Test Script. -ExecutingScriptMessage=Executing Script: {0} -ResourceNotAllowedWhenDeviceGuardIsEnabled='Script' resource from 'PSDesiredStateConfiguration' module is not supported when Device Guard is enabled. Please use 'Script' resource published by PSDscResources module from PowerShell Gallery. -WarningRunningScriptResourceInFullLanguageMode=Running 'Script' resource in FullLanguage mode as Device Guard is enabled in 'Audit' mode. -'@ -} - -$GenericMessageEventID=0x1005; -$ClassName="MSFT_ScriptResource" - - -Import-LocalizedData LocalizedData -filename MSFT_ScriptResourceStrings - - -# The Get-TargetResource cmdlet is used to fetch the desired state of the DSC managed node through a powershell script. -# This cmdlet executes the user supplied script (i.e., the script is responsible for validating the desired state of the -# DSC managed node). The result of the script execution is in the form of a hashtable containing all the inormation -# gathered from the GetScript execution. -function Get-TargetResource -{ - [CmdletBinding()] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $GetScript, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$SetScript, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $TestScript, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.PSCredential] - $Credential - ) - - # Inbox 'Script' resource is not allowed to execute if Device Guard is enabled. - # Check and throw terminating error if Device Guard is enabled. - CheckDeviceGuardStatus - - $getTargetResourceResult = $null; - - $getTargetResourceStartVerboseMessage = $($LocalizedData.GetTargetResourceStartVerboseMessage); - Write-Debug -Message $getTargetResourceStartVerboseMessage; - - $script = [ScriptBlock]::Create($GetScript); - $parameters = $psboundparameters.Remove("GetScript"); - $psboundparameters.Add("ScriptBlock", $script); - - $parameters = $psboundparameters.Remove("SetScript"); - $parameters = $psboundparameters.Remove("TestScript"); - - $scriptResult = ScriptExecutionHelper @psboundparameters; - - $scriptResultAsErrorRescord = $scriptResult -as [System.Management.Automation.ErrorRecord] - if($null -ne $scriptResultAsErrorRescord) - { - $PSCmdlet.ThrowTerminatingError($scriptResultAsErrorRescord); - } - - $scriptResultAsHasTable = $scriptResult -as [hashtable] - - if($null -ne $scriptResultAsHasTable) - { - $getTargetResourceResult = $scriptResultAsHasTable ; - } - else - { - # Error message indicating failure to get valid hashtable as the result of the Get script execution. - $errorId = "InValidResultFromGetScript"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidResult; - $exception = New-Object System.InvalidOperationException $($LocalizedData.InValidResultFromGetScriptError); - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - - $getTargetResourceEndVerboseMessage = $($LocalizedData.GetTargetResourceEndVerboseMessage); - Write-Debug -Message $getTargetResourceEndVerboseMessage; - - $getTargetResourceResult; -} - - -# The Set-TargetResource cmdlet is used to Set the desired state of the DSC managed node through a powershell script. -# The method executes the user supplied script (i.e., the script is responsible for validating the desired state of the -# DSC managed node). If the DSC managed node requires a restart either during or after the execution of the SetScript, -# the SetScript notifies the PS Infrasturcure by setting the variable $DSCMachineStatus.IsRestartRequired to $true. -function Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $SetScript, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $GetScript, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.PSCredential] - $Credential, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $TestScript - - ) - - # Inbox 'Script' resource is not allowed to execute if Device Guard is enabled. - # Check and throw terminating error if Device Guard is enabled. - CheckDeviceGuardStatus - - $setscriptmessage = '$SetScript:' + $SetScript - $testscriptmessage = '$TestScript:' + $TestScript - if ($pscmdlet.ShouldProcess($($LocalizedData.SetScriptWhatIfMessage))) - { - $setTargetResourceStartVerboseMessage = $($LocalizedData.SetTargetResourceStartVerboseMessage); - Write-Debug -Message $setTargetResourceStartVerboseMessage; - - $script = [ScriptBlock]::Create($SetScript); - $parameters = $psboundparameters.Remove("SetScript"); - $psboundparameters.Add("ScriptBlock", $script); - - $parameters = $psboundparameters.Remove("GetScript"); - $parameters = $psboundparameters.Remove("TestScript"); - - $scriptResult = ScriptExecutionHelper @psboundparameters ; - - $scriptResultAsErrorRescord = $scriptResult -as [System.Management.Automation.ErrorRecord] - if($null -ne $scriptResultAsErrorRescord) - { - $PSCmdlet.ThrowTerminatingError($scriptResultAsErrorRescord); - } - - $setTargetResourceEndVerboseMessage = $($LocalizedData.SetTargetResourceEndVerboseMessage); - Write-Debug -Message $setTargetResourceEndVerboseMessage; - } -} - - -# The Test-TargetResource cmdlet is used to validate the desired state of the DSC managed node through a powershell script. -# The method executes the user supplied script (i.e., the script is responsible for validating the desired state of the -# DSC managed node). The result of the script execution should be true if the DSC managed machine is in the desired state -# or else false should be returned. -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string] - $TestScript, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$SetScript, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$GetScript, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.PSCredential] - $Credential - ) - - # Inbox 'Script' resource is not allowed to execute if Device Guard is enabled. - # Check and throw terminating error if Device Guard is enabled. - CheckDeviceGuardStatus - - $testTargetResourceResult = $false; - - $testTargetResourceStartVerboseMessage = $($LocalizedData.TestTargetResourceStartVerboseMessage); - Write-Debug -Message $testTargetResourceStartVerboseMessage; - - $script = [ScriptBlock]::Create($TestScript); - $parameters = $psboundparameters.Remove("TestScript"); - $psboundparameters.Add("ScriptBlock", $script); - - $parameters = $psboundparameters.Remove("GetScript"); - $parameters = $psboundparameters.Remove("SetScript"); - - $scriptResult = ScriptExecutionHelper @psboundparameters ; - - $scriptResultAsErrorRescord = $scriptResult -as [System.Management.Automation.ErrorRecord] - if($null -ne $scriptResultAsErrorRescord) - { - $PSCmdlet.ThrowTerminatingError($scriptResultAsErrorRescord); - } - - if($null -eq $scriptResult) - { - $errorId = "InValidResultFromTestScript"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidResult; - $exception = New-Object System.InvalidOperationException $($LocalizedData.InValidResultFromTestScriptError) ; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - - # If the script is returing multiple objects, then we consider the last object to be the result of script execution. - if($scriptResult.GetType().ToString() -eq 'System.Object[]') - { - $reultObject = $scriptResult[$scriptResult.Length -1]; - } - else - { - $reultObject = $scriptResult; - } - - if(($null -ne $reultObject) -and - (($reultObject -eq $true) -or ($reultObject -eq $false))) - { - $testTargetResourceResult = $reultObject; - } - else - { - $errorId = "InValidResultFromTestScript"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidResult; - $exception = New-Object System.InvalidOperationException $($LocalizedData.InValidResultFromTestScriptError) ; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - - $testTargetResourceEndVerboseMessage = $($LocalizedData.TestTargetResourceEndVerboseMessage); - Write-Debug -Message $testTargetResourceEndVerboseMessage; - - $testTargetResourceResult; -} - -function CheckDeviceGuardStatus -{ - try - { - # Check if Device Guard is enabled. - $systemLockdownPolicy = [System.Management.Automation.Security.SystemPolicy]::GetSystemLockdownPolicy() - if($systemLockdownPolicy -eq [System.Management.Automation.Security.SystemEnforcementMode]::Enforce) - { - $errorId = "ResourceNotAllowedWhenDeviceGuardIsEnabled"; - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation; - $exception = New-Object System.InvalidOperationException $($LocalizedData.ResourceNotAllowedWhenDeviceGuardIsEnabled); - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - $PSCmdlet.ThrowTerminatingError($errorRecord); - } - elseif ($systemLockdownPolicy -eq [System.Management.Automation.Security.SystemEnforcementMode]::Audit) - { - Write-Warning ($LocalizedData.WarningRunningScriptResourceInFullLanguageMode) - } - } - catch - { - if($_.FullyQualifiedErrorId -eq 'TypeNotFound') - { - # [System.Management.Automation.Security.SystemPolicy] Type not found. - # It may happen with old PowerShell version. - # Silently continue. - return - } - - # Failed to get Device Guard status. - throw $_ - } -} - -function ScriptExecutionHelper -{ - param - ( - [ScriptBlock] - $ScriptBlock, - - [System.Management.Automation.PSCredential] - $Credential - ) - - $scriptExecutionResult = $null; - - try - { - - $executingScriptMessage = $($LocalizedData.ExecutingScriptMessage) -f ${ScriptBlock} ; - Write-Debug -Message $executingScriptMessage; - - if($null -ne $Credential) - { - $scriptExecutionResult = Invoke-Command -ScriptBlock $ScriptBlock -ComputerName . -Credential $Credential - } - else - { - $scriptExecutionResult = &$ScriptBlock; - } - $scriptExecutionResult; - } - catch - { - # Surfacing the error thrown by the execution of Get/Set/Test script. - $_; - } -} diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/MSFT_ScriptResource.schema.mof deleted file mode 100644 index 125dc8adcfc0cdb429ec3aa7423e9c6f84bcd14d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmbV~K}*9x5QX1a@IQolQ7A>Pdb3(7qJk-2YLT^#5@@0%DWQmeUHxVnHMJf@mf2li z-kW(doA zvMl$DSBPMbb&hf=t6Ji~eCBi>=?uJDt9SGVRs1j22$fZD&!Szec3<{7U7hkb+;f|; yY#-v+w1M;U@A#fqAEmKu_V$i}soI-t_WK*N?ZM_4$h4_kO?W}(N-M={bAA9G9eYav diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/ko-KR/MSFT_ScriptResource.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ScriptResource/ko-KR/MSFT_ScriptResource.schema.mfl deleted file mode 100644 index 3b8fd49c776643c20a7e2ecad4883a1548ebb482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmd5)O-lk%6g}%8+PY}*u#JLd#FL5;lociHmnk$1IR(5Kobp<2EoyPKka6D%jIXY}$hP z5yUWtbRH1pYS-W^`b?-;p3XAl!5#ryJwiHHg6w50uvKnZY=_+0poR-^1ABvp7Yu@5P-Y5c%jZ9U^zM zVjm>4^vggIrx{>K07C%d6y2laHHdm(Ck20kE|6y%Q!8*?$E^Xn1{o}A7%~)$RhA=k z$9&mO6F|$1lUPUbe)hDK3f#@KJ&zQqx}ntplOd;G83k^-SU|NB%h38Cy1H{l46mdZ2J#A6>OP?Pg`^ z$si;q%&2nDD?U{a6O8RPFfd1FG)hTTKTE9~hZXIaZnweSI(xw~^56RA3!hi*`eat^ z2S+KX9*%qKtcT;y`kWlC7~Kz+maKYsT6cHTTMtu9j+;&=*V>HWdT-AcXIxr2A>*+d z+4=}Q=CN7noIT_!Vp~CnikX@D08t(xuE67n#~zHFq1*w<^~=EsbINZov=rdgWA zlLT9*jgs3sOQ>uiT|w7bP%BzX${j(K^LMSHwdG}p88NLF2MhMz5Lm_WlPkL~ow~U* z1#p|u4nPLKW=}-HU=WNVnEkGnU>rNWWE)mevM1QRZ1-KYib{VqsA^VPzmj4rkCuJ8 WV7Wb2t@Pa8o&BAAya)dQ@cbLb<&#+e diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.psm1 deleted file mode 100644 index f3c714b..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.psm1 +++ /dev/null @@ -1,1256 +0,0 @@ -data LocalizedData -{ - # culture="en-US" - ConvertFrom-StringData @" -ServiceNotFound=Service '{0}' not found. -CannotStartAndDisable=Cannot start and disable a service. -CannotStopServiceSetToStartAutomatically=Cannot stop a service and set it to start automatically. -ServiceAlreadyStarted=Service '{0}' already started, no action required. -ServiceStarted=Service '{0}' started. -ServiceStopped=Service '{0}' stopped. -ErrorStartingService=Failure starting service '{0}'. Please check the path '{1}' provided for the service. Message: '{2}' -OnlyOneParameterCanBeSpecified=Only one of the following parameters can be specified: '{0}', '{1}'. -StartServiceWhatIf=Start Service -ServiceAlreadyStopped=Service '{0}' already stopped, no action required. -ErrorStoppingService=Failure stopping service '{0}'. Message: '{1}' -ErrorRetrievingServiceInformation=Failure retrieving information for service '{0}'. Message: '{1}' -ErrorSettingServiceCredential=Failure setting credentials for service '{0}'. Message: '{1}' -SetCredentialWhatIf=Set Credential -SetStartupTypeWhatIf=Set Start Type -ErrorSettingServiceStartupType=Failure setting start type for service '{0}'. Message: '{1}' -TestUserNameMismatch=User name for service '{0}' is '{1}'. It does not match '{2}. -TestStartupTypeMismatch=Startup type for service '{0}' is '{1}'. It does not match '{2}'. -MethodFailed=The '{0}' method of '{1}' failed with error code: '{2}'. -ErrorChangingProperty=Failed to change '{0}' property. Message: '{1}' -ErrorSetingLogOnAsServiceRightsForUser=Error granting '{0}' the right to log on as a service. Message: '{1}'. -CannotOpenPolicyErrorMessage=Cannot open policy manager -UserNameTooLongErrorMessage=User name is too long -CannotLookupNamesErrorMessage=Failed to lookup user name -CannotOpenAccountErrorMessage=Failed to open policy for user -CannotCreateAccountAccessErrorMessage=Failed to create policy for user -CannotGetAccountAccessErrorMessage=Failed to get user policy rights -CannotSetAccountAccessErrorMessage=Failed to set user policy rights -BinaryPathNotSpecified=Specify the path to the executable when trying to create a new service -ServiceAlreadyExists=The service '{0}' to create already exists -ServiceExistsSamePath=The service '{0}' to create already exists with path '{1}' -ServiceNotExists=The service '{0}' does not exist. Specify the path to the executable to create a new service -ErrorDeletingService=Error in deleting service '{0}' -ServiceDeletedSuccessfully=Service '{0}' Deleted Successfully -TryDeleteAgain=Wait for 2 milliseconds for a service to get deleted -WritePropertiesIgnored=Service '{0}' already exists. Write properties such as Status, DisplayName, Description, Dependencies will be ignored for existing services. -"@ -} - -Import-LocalizedData LocalizedData -filename MSFT_ServiceResource.strings.psd1 -$EscapedLocalizedData = @{} -foreach( $key in $LocalizedData.Keys ) -{ - $EscapedLocalizedData.Add($key, $LocalizedData[$key].Replace('"','""')) -} -$LocalizedData = $EscapedLocalizedData -Import-Module "$PSScriptRoot\..\RunAsHelper.psm1" - -<# -.Synopsis -Gets a service resource -#> -function Get-TargetResource -{ - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name - ) - - $svc = GetServiceResource $Name - $svcWmi = GetWMIService $Name - - return @{ - Name=$svc.Name - StartupType=(NormalizeStartupType $svcWmi.StartMode).ToString() - BuiltInAccount=if($svcWmi.StartName -ieq "LocalSystem") {"LocalSystem"} ` - elseif($svcWmi.StartName -ieq "NT Authority\NetworkService") {"NetworkService"} ` - elseif($svcWmi.StartName -ieq "NT Authority\LocalService") {"LocalService"} else {$null} - State=$svc.Status.ToString() - Path=$svcWmi.PathName - DisplayName=$svc.DisplayName - Description=$svcWmi.Description - Dependencies=[string[]](@() + ($svc.ServicesDependedOn | %{$_.Name})) - } -} - - -<# -.Synopsis -Tests a service resource -#> -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [System.String] - [ValidateSet("Automatic", "Manual", "Disabled")] - $StartupType, - - [System.String] - [ValidateSet("LocalSystem", "LocalService", "NetworkService")] - $BuiltInAccount, - - [System.Management.Automation.PSCredential] - [ValidateNotNull()] - $Credential, - - [System.String] - [ValidateSet("Running", "Stopped")] - $State="Running", - - [System.String] - [ValidateNotNullOrEmpty()] - $DisplayName, - - [System.String] - [ValidateNotNullOrEmpty()] - $Description, - - [System.String] - [ValidateNotNullOrEmpty()] - $Path, - - [System.String[]] - [ValidateNotNullOrEmpty()] - $Dependencies, - - [System.String] - [ValidateSet("Present", "Absent")] - $Ensure="Present" - ) - - ValidateStartupType $Name $StartupType $State - - $serviceExists = ServiceExists -Name $Name -Path $Path -ErrorAction SilentlyContinue - - if($Ensure -eq "Absent") - { - if($serviceExists) - { - return $false - } - return $true - } - - if(!$serviceExists) - { - return $false; - } - - $svc=GetServiceResource $Name - - if($PSBoundParameters.ContainsKey("StartupType") -or $PSBoundParameters.ContainsKey("BuiltInAccount") -or $PSBoundParameters.ContainsKey("Credential")) - { - $svcWmi = GetWMIService $Name - - $getUserNameAndPasswordArgs=@{} - if($PSBoundParameters.ContainsKey("BuiltInAccount")) {$null=$getUserNameAndPasswordArgs.Add("BuiltInAccount",$BuiltInAccount)} - if($PSBoundParameters.ContainsKey("Credential")) {$null=$getUserNameAndPasswordArgs.Add("Credential",$Credential)} - - $userName,$password=GetUserNameAndPassword @getUserNameAndPasswordArgs - if($userName -ne $null -and !(TestUserName $SvcWmi $userName)) - { - write-verbose ($LocalizedData.TestUserNameMismatch -f $svcWmi.Name,$svcWmi.StartName,$userName) - return $false - } - - if($PSBoundParameters.ContainsKey("StartupType") -and !(TestStartupType $SvcWmi $StartupType)) - { - write-verbose ($LocalizedData.TestStartupTypeMismatch -f $svcWmi.Name,$svcWmi.StartMode,$StartupType) - return $false - } - } - - return ($State -eq "Stopped" -and $svc.Status -eq "Stopped") -or ($svc.Status -eq "Running" -and $State -eq "Running") -} - -<# -.Synopsis -Sets properties for a service resource -#> -function Set-TargetResource -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [System.String] - [ValidateSet("Automatic", "Manual", "Disabled")] - $StartupType, - - [System.String] - [ValidateSet("LocalSystem", "LocalService", "NetworkService")] - $BuiltInAccount, - - [System.Management.Automation.PSCredential] - [ValidateNotNull()] - $Credential, - - [System.String] - [ValidateSet("Running", "Stopped")] - $State="Running", - - [System.String] - [ValidateNotNullOrEmpty()] - $DisplayName, - - [System.String] - [ValidateNotNullOrEmpty()] - $Description, - - [System.String] - [ValidateNotNullOrEmpty()] - $Path, - - [System.String[]] - [ValidateNotNullOrEmpty()] - $Dependencies, - - [System.String] - [ValidateSet("Present", "Absent")] - $Ensure="Present" - ) - - ValidateStartupType $Name $StartupType $State - - if($Ensure -eq "Absent") - { - $svc = GetServiceResource $Name - StopService $svc - DeleteService $svc.Name - return - } - - $serviceExists = ServiceExists -Name $Name -ErrorAction SilentlyContinue - - if($PSBoundParameters.ContainsKey("Path") -and $serviceExists) - { - if(CompareServicePath -Path $Path -Name $Name) - { - ThrowInvalidArgumentError "ServiceExistsSamePath" ($LocalizedData.ServiceExistsSamePath -f $Name, $Path) - } - ThrowInvalidArgumentError "ServiceAlreadyExists" ($LocalizedData.ServiceAlreadyExists -f $Name) - } - elseif($PSBoundParameters.ContainsKey("Path") -and !$serviceExists) - { - $argumentsToNewService = @{} - $argumentsToNewService.Add("Name", $Name) - $argumentsToNewService.Add("BinaryPathName", $Path) - if($PSBoundParameters.ContainsKey("Credential")) - { - $argumentsToNewService.Add("Credential", $Credential) - } - if($PSBoundParameters.ContainsKey("StartupType")) - { - $argumentsToNewService.Add("StartupType", $StartupType) - } - if($PSBoundParameters.ContainsKey("DisplayName")) - { - $argumentsToNewService.Add("DisplayName", $DisplayName) - } - if($PSBoundParameters.ContainsKey("Description")) - { - $argumentsToNewService.Add("Description", $Description) - } - if($PSBoundParameters.ContainsKey("Dependencies")) - { - $argumentsToNewService.Add("DependsOn", $Dependencies) - } - try - { - New-Service @argumentsToNewService - $serviceIsNew = $true - } - catch - { - Write-Log ("Error creating service `"$($argumentsToNewService["Name"])`"", $_.Exception.Message) - throw $_ - } - } - elseif(!$PSBoundParameters.ContainsKey("Path") -and !$serviceExists) - { - throw $LocalizedData.ServiceNotExists -f $Name - } - - $svc=GetServiceResource $Name - - if(!$serviceIsNew) - { - Write-Verbose ($LocalizedData.WritePropertiesIgnored -f $Name) - } - - $writeWritePropertiesArguments=@{Name=$svc.name} - if($PSBoundParameters.ContainsKey("StartupType")) {$null=$writeWritePropertiesArguments.Add("StartupType",$StartupType)} - if($PSBoundParameters.ContainsKey("BuiltInAccount")) {$null=$writeWritePropertiesArguments.Add("BuiltInAccount",$BuiltInAccount)} - if($PSBoundParameters.ContainsKey("Credential")) {$null=$writeWritePropertiesArguments.Add("Credential",$Credential)} - - WriteWriteProperties @writeWritePropertiesArguments - - if($State -eq "Stopped") - { - # Ensure service is stopped - StopService $svc - return - } - - # Default state of a newly created service is 'stopped'. If $State=Running, ensure service is started. - if($State -eq "Running") - { - StartService $svc - } -} - -<# -.Synopsis -Validates if a service exist using the Name parameter -#> -function ServiceExists -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [System.String] - $Path - ) - - $service = Get-Service -Name $Name -ErrorAction SilentlyContinue - if($service -ne $null) - { - if($Path -ne $null -and $Path -ne '' -and !(CompareServicePath -Name $Name -Path $Path)){ - return $false - } - return $true - } - return $false -} - -<# -.Synopsis -Compares path to the service path, if the service exists. Returns true when path is same as service path. -#> -function CompareServicePath -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Path, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name - ) - - $servicePath = (Get-CimInstance -Class win32_service | where {$_.Name -eq $Name}).PathName - $result = [string]::Compare($Path, $servicePath, [System.Globalization.CultureInfo]::CurrentUICulture) - - if($result -ne 0) - { - return $false - } - return $true -} - -<# -.Synopsis -Validates a StartupType against the State parameter -#> -function ValidateStartupType -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name, - - [System.String] - $StartupType, - - [System.String] - [ValidateSet("Running", "Stopped")] - $State="Running" - ) - - if($StartupType -eq $null) {return} - - if($State -eq "Stopped") - { - if($StartupType -eq "Automatic") - { - # State = Stopped conflicts with Automatic or Delayed - ThrowInvalidArgumentError "CannotStopServiceSetToStartAutomatically" ($LocalizedData.CannotStopServiceSetToStartAutomatically -f $Name) - } - } - else - { - if($StartupType -eq "Disabled") - { - # State = Running conflicts with Disabled - ThrowInvalidArgumentError "CannotStartAndDisable" ($LocalizedData.CannotStartAndDisable -f $Name) - } - } -} - - -<# -.Synopsis -Writes all write properties if not already correctly set, logging errors and respecting whatif -#> -function WriteWriteProperties -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $Name, - - [System.String] - [ValidateSet("Automatic", "Manual", "Disabled")] - $StartupType, - - [System.String] - [ValidateSet("LocalSystem", "LocalService", "NetworkService")] - $BuiltInAccount, - - [System.Management.Automation.PSCredential] - [ValidateNotNull()] - $Credential - ) - - if(!$PSBoundParameters.ContainsKey("StartupType") -and !$PSBoundParameters.ContainsKey("BuiltInAccount") -and !$PSBoundParameters.ContainsKey("Credential")) - { - return - } - - $svcWmi = GetWMIService $Name - - $writeCredentialPropertiesArguments=@{"SvcWmi"=$svcWmi} - if($PSBoundParameters.ContainsKey("BuiltInAccount")) {$null=$writeCredentialPropertiesArguments.Add("BuiltInAccount",$BuiltInAccount)} - if($PSBoundParameters.ContainsKey("Credential")) {$null=$writeCredentialPropertiesArguments.Add("Credential",$Credential)} - - WriteCredentialProperties @writeCredentialPropertiesArguments - - $writeStartupArguments=@{"SvcWmi"=$svcWmi} - if($PSBoundParameters.ContainsKey("StartupType")) {$null=$writeStartupArguments.Add("StartupType",$StartupType)} - WriteStartupTypeProperty @writeStartupArguments -} - -<# -.Synopsis -Gets a Win32_Service object corresponding to the name -#> -function GetWMIService -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $Name - ) - - try - { - return Get-CimInstance -ClassName Win32_Service -Filter "Name='$Name'" - } - catch - { - Write-Verbose ($LocalizedData.ErrorRetrievingServiceInformation -f $Name,$_.Exception.Message) - throw - } -} - -<# -.Synopsis -Writes StartupType if not already correctly set, logging errors and respecting whatif -#> -function WriteStartupTypeProperty -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $SvcWmi, - - [System.String] - $StartupType - ) - - if($PSBoundParameters.ContainsKey("StartupType") -and !(TestStartupType $SvcWmi $StartupType) -and $PSCmdlet.ShouldProcess($svcWmi.Name,$LocalizedData.SetStartupTypeWhatIf)) - { - $ret = Invoke-CimMethod -InputObject $SvcWmi -MethodName Change -Arguments @{StartMode=$StartupType} - if($ret.ReturnValue -ne 0) - { - $innerMessage = $LocalizedData.MethodFailed -f "Change","Win32_Service",$ret.ReturnValue - $message = $LocalizedData.ErrorChangingProperty -f "StartupType",$innerMessage - ThrowInvalidArgumentError "ChangeStartupTypeFailed" $message - } - } -} - - -<# -.Synopsis -Writes credential properties if not already correctly set, logging errors and respecting whatif -#> -function WriteCredentialProperties -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $SvcWmi, - - - [System.String] - [ValidateSet("LocalSystem", "LocalService", "NetworkService")] - $BuiltInAccount, - - [System.Management.Automation.PSCredential] - $Credential - ) - - if(!$PSBoundParameters.ContainsKey("Credential") -and !$PSBoundParameters.ContainsKey("BuiltInAccount")) - { - return - } - - if($PSBoundParameters.ContainsKey("Credential") -and $PSBoundParameters.ContainsKey("BuiltInAccount")) - { - ThrowInvalidArgumentError "OnlyCredentialOrBuiltInAccount" ($LocalizedData.OnlyOneParameterCanBeSpecified -f "Credential","BuiltInAccount") - } - - $getUserNameAndPasswordArgs=@{} - if($PSBoundParameters.ContainsKey("BuiltInAccount")) {$null=$getUserNameAndPasswordArgs.Add("BuiltInAccount",$BuiltInAccount)} - if($PSBoundParameters.ContainsKey("Credential")) {$null=$getUserNameAndPasswordArgs.Add("Credential",$Credential)} - - $userName,$password=GetUserNameAndPassword @getUserNameAndPasswordArgs - - if($userName -ne $null -and !(TestUserName $SvcWmi $userName) -and $PSCmdlet.ShouldProcess($SvcWmi.Name,$LocalizedData.SetCredentialWhatIf)) - { - if($PSBoundParameters.ContainsKey("Credential")) - { - SetLogOnAsServicePolicy $userName - } - - $ret = Invoke-CimMethod -InputObject $SvcWmi -MethodName Change -Arguments @{StartName=$userName;StartPassword=$password} - if($ret.ReturnValue -ne 0) - { - $innerMessage = $LocalizedData.MethodFailed -f "Change","Win32_Service",$ret.ReturnValue - $message = $LocalizedData.ErrorChangingProperty -f "Credential",$innerMessage - ThrowInvalidArgumentError "ChangeCredentialFailed" $message - } - } -} - -<# -.Synopsis -Returns true if the service's StartName matches $UserName -#> -function TestUserName -{ - param - ( - $SvcWmi, - - [string] - $UserName - ) - - return (NormalizeUserName $SvcWmi.StartName) -ieq $UserName -} - -function TestStartupType -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $SvcWmi, - - [System.String] - $StartupType - ) - - return (NormalizeStartupType $SvcWmi.StartMode) -ieq $StartupType -} - - -<# -.Synopsis -Retrieves user name and password out of the BuiltInAccount and Credential parameters -#> -function GetUserNameAndPassword -{ - param - ( - [System.String] - [ValidateSet("LocalSystem", "LocalService", "NetworkService")] - $BuiltInAccount, - - [System.Management.Automation.PSCredential] - $Credential - ) - - if($PSBoundParameters.ContainsKey("BuiltInAccount")) - { - return (NormalizeUserName $BuiltInAccount.ToString()),$null - } - - if($PSBoundParameters.ContainsKey("Credential")) - { - return (NormalizeUserName $Credential.UserName),$Credential.GetNetworkCredential().Password - } - - return $null,$null -} - -<# -.Synopsis -Stops a service if it is not already stopped logging the result -#> -function StopService -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $svc - ) - - if($svc.Status -eq [System.ServiceProcess.ServiceControllerStatus]::Stopped) - { - Write-Log ($LocalizedData.ServiceAlreadyStopped -f $svc.Name) - return - } - - # Exceptions will be thrown, caught and logged by the infrastructure - $err=Stop-Service $svc.Name -force 2>&1 - if($err -eq $null) - { - Write-Log ($LocalizedData.ServiceStopped -f $svc.Name) - } - else - { - Write-Log ($LocalizedData.ErrorStoppingService -f $svc.Name,($err | Out-String)) - throw $err - } -} - -<# -.Synopsis -Starts a service if it is not already started logging the result -#> -function StartService -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $svc - ) - - if($svc.Status -eq [System.ServiceProcess.ServiceControllerStatus]::Running) - { - Write-Log ($LocalizedData.ServiceAlreadyStarted -f $svc.Name) - return - } - - if($PSCmdlet.ShouldProcess($svc.Name,$LocalizedData.StartServiceWhatIf)) - { - try - { - $svc.Start() - $twoSeconds = New-Object timespan 20000000 - $svc.WaitForStatus("Running",$twoSeconds) - } - catch - { - $servicePath = (Get-CimInstance -Class win32_service | where {$_.Name -eq $Name}).PathName - $message = $LocalizedData.ErrorStartingService -f $svc.Name,$servicePath,$_.Exception.Message - ThrowInvalidArgumentError "ErrorStartingService" $message - } - - Write-Log ($LocalizedData.ServiceStarted -f $svc.Name) - } - -} - -<# -.Synopsis -Deletes a service -#> -function DeleteService -{ - [CmdletBinding(SupportsShouldProcess = $true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNull()] - $Name - ) - - $err = & "sc.exe" "delete" "$Name" - - for($i = 1; $i -lt 1000; $i++) - { - if(!(ServiceExists -Name $Name)) - { - $serviceDeletedSuccessfully = $true - break - } - - #try again after 2 millisecs if the service is not deleted. - Write-Verbose ($LocalizedData.TryDeleteAgain) - Start-Sleep .002 - } - if(!$serviceDeletedSuccessfully) - { - Write-Log ($LocalizedData.ErrorDeletingService -f $Name) - throw $LocalizedData.ErrorDeletingService -f $Name - } - else - { - Write-Log ($LocalizedData.ServiceDeletedSuccessfully -f $Name) - } -} - -function NormalizeStartupType([string]$StartupType) -{ - if ($StartupType -ieq 'Auto') {return "Automatic"} - return $StartupType -} - -function NormalizeUserName([string]$UserName) -{ - if ($UserName -ieq 'NetworkService') {return "NT Authority\NetworkService"} - if ($UserName -ieq 'LocalService') {return "NT Authority\LocalService"} - if ($UserName -ieq 'LocalSystem') {return ".\LocalSystem"} - if ($UserName.IndexOf("\") -eq -1) { return ".\" + $userName } - return $UserName -} - -<# -.Synopsis -Throws an argument error -#> -function ThrowInvalidArgumentError -{ - [CmdletBinding()] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $errorId, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $errorMessage - ) - - $errorCategory=[System.Management.Automation.ErrorCategory]::InvalidArgument - $exception = New-Object System.ArgumentException $errorMessage; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null - throw $errorRecord -} - -<# -.Synopsis -Gets a service corresponding to a name, throwing an error if not found -#> -function GetServiceResource -{ - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Name - ) - - $svc=Get-Service $name -ErrorAction Ignore - - if($svc -eq $null) - { - ThrowInvalidArgumentError "ServiceNotFound" ($LocalizedData.ServiceNotFound -f $Name) - } - - return $svc -} - -<# -.Synopsis -Grants log on as service right to the given user -#> -function SetLogOnAsServicePolicy([string]$userName) -{ - $logOnAsServiceText=@" - namespace LogOnAsServiceHelper - { - using Microsoft.Win32.SafeHandles; - using System; - using System.Runtime.ConstrainedExecution; - using System.Runtime.InteropServices; - using System.Security; - - public class NativeMethods - { - #region constants - // from ntlsa.h - private const int POLICY_LOOKUP_NAMES = 0x00000800; - private const int POLICY_CREATE_ACCOUNT = 0x00000010; - private const uint ACCOUNT_ADJUST_SYSTEM_ACCESS = 0x00000008; - private const uint ACCOUNT_VIEW = 0x00000001; - private const uint SECURITY_ACCESS_SERVICE_LOGON = 0x00000010; - - // from LsaUtils.h - private const uint STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034; - - // from lmcons.h - private const int UNLEN = 256; - private const int DNLEN = 15; - - // Extra characteres for "\","@" etc. - private const int EXTRA_LENGTH = 3; - #endregion constants - - #region interop structures - /// - /// Used to open a policy, but not containing anything meaqningful - /// - [StructLayout(LayoutKind.Sequential)] - private struct LSA_OBJECT_ATTRIBUTES - { - public UInt32 Length; - public IntPtr RootDirectory; - public IntPtr ObjectName; - public UInt32 Attributes; - public IntPtr SecurityDescriptor; - public IntPtr SecurityQualityOfService; - - public void Initialize() - { - this.Length = 0; - this.RootDirectory = IntPtr.Zero; - this.ObjectName = IntPtr.Zero; - this.Attributes = 0; - this.SecurityDescriptor = IntPtr.Zero; - this.SecurityQualityOfService = IntPtr.Zero; - } - } - - /// - /// LSA string - /// - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] - private struct LSA_UNICODE_STRING - { - internal ushort Length; - internal ushort MaximumLength; - [MarshalAs(UnmanagedType.LPWStr)] - internal string Buffer; - - internal void Set(string src) - { - this.Buffer = src; - this.Length = (ushort)(src.Length * sizeof(char)); - this.MaximumLength = (ushort)(this.Length + sizeof(char)); - } - } - - /// - /// Structure used as the last parameter for LSALookupNames - /// - [StructLayout(LayoutKind.Sequential)] - private struct LSA_TRANSLATED_SID2 - { - public uint Use; - public IntPtr SID; - public int DomainIndex; - public uint Flags; - }; - #endregion interop structures - - #region safe handles - /// - /// Handle for LSA objects including Policy and Account - /// - private class LsaSafeHandle : SafeHandleZeroOrMinusOneIsInvalid - { -#if CORECLR - [DllImport("api-ms-win-security-lsapolicy-l1-1-0.dll")] -#else - [DllImport("advapi32.dll")] -#endif - private static extern uint LsaClose(IntPtr ObjectHandle); - - /// - /// Prevents a default instance of the LsaPolicySafeHAndle class from being created. - /// - private LsaSafeHandle(): base(true) - { - } - - /// - /// Calls NativeMethods.CloseHandle(handle) - /// - /// the return of NativeMethods.CloseHandle(handle) -#if !CORECLR - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] -#endif - protected override bool ReleaseHandle() - { - long returnValue = LsaSafeHandle.LsaClose(this.handle); - return returnValue != 0; - - } - } - - /// - /// Handle for IntPtrs returned from Lsa calls that have to be freed with - /// LsaFreeMemory - /// - private class SafeLsaMemoryHandle : SafeHandleZeroOrMinusOneIsInvalid - { -#if CORECLR - [DllImport("api-ms-win-security-lsapolicy-l1-1-0.dll")] -#else - [DllImport("advapi32")] -#endif - internal static extern int LsaFreeMemory(IntPtr Buffer); - - private SafeLsaMemoryHandle() : base(true) { } - - private SafeLsaMemoryHandle(IntPtr handle) - : base(true) - { - SetHandle(handle); - } - - private static SafeLsaMemoryHandle InvalidHandle - { - get { return new SafeLsaMemoryHandle(IntPtr.Zero); } - } - - override protected bool ReleaseHandle() - { - return SafeLsaMemoryHandle.LsaFreeMemory(handle) == 0; - } - - internal IntPtr Memory - { - get - { - return this.handle; - } - } - } - #endregion safe handles - - #region interop function declarations - /// - /// Opens LSA Policy - /// -#if CORECLR - [DllImport("api-ms-win-security-lsapolicy-l1-1-0.dll", SetLastError = true, PreserveSig = true)] -#else - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] -#endif - private static extern uint LsaOpenPolicy( - IntPtr SystemName, - ref LSA_OBJECT_ATTRIBUTES ObjectAttributes, - uint DesiredAccess, - out LsaSafeHandle PolicyHandle - ); - - /// - /// Convert the name into a SID which is used in remaining calls - /// -#if CORECLR - [DllImport("api-ms-win-security-lsapolicy-l1-1-0.dll", CharSet = CharSet.Unicode, SetLastError = true)] -#else - [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true), SuppressUnmanagedCodeSecurityAttribute] -#endif - private static extern uint LsaLookupNames2( - LsaSafeHandle PolicyHandle, - uint Flags, - uint Count, - LSA_UNICODE_STRING[] Names, - out SafeLsaMemoryHandle ReferencedDomains, - out SafeLsaMemoryHandle Sids - ); - - /// - /// Opens the LSA account corresponding to the user's SID - /// -#if CORECLR - [DllImport("advapi32legacy.dll", SetLastError = true, PreserveSig = true)] -#else - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] -#endif - private static extern uint LsaOpenAccount( - LsaSafeHandle PolicyHandle, - IntPtr Sid, - uint Access, - out LsaSafeHandle AccountHandle); - - /// - /// Creates an LSA account corresponding to the user's SID - /// -#if CORECLR - [DllImport("advapi32legacy.dll", SetLastError = true, PreserveSig = true)] -#else - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] -#endif - private static extern uint LsaCreateAccount( - LsaSafeHandle PolicyHandle, - IntPtr Sid, - uint Access, - out LsaSafeHandle AccountHandle); - - /// - /// Gets the LSA Account access - /// -#if CORECLR - [DllImport("advapi32legacy.dll", SetLastError = true, PreserveSig = true)] -#else - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] -#endif - private static extern uint LsaGetSystemAccessAccount( - LsaSafeHandle AccountHandle, - out uint SystemAccess); - - /// - /// Sets the LSA Account access - /// -#if CORECLR - [DllImport("advapi32legacy.dll", SetLastError = true, PreserveSig = true)] -#else - [DllImport("advapi32.dll", SetLastError = true, PreserveSig = true)] -#endif - private static extern uint LsaSetSystemAccessAccount( - LsaSafeHandle AccountHandle, - uint SystemAccess); - #endregion interop function declarations - - /// - /// Sets the Log On As A Service Policy for , if not already set. - /// - /// the user name we want to allow logging on as a service - /// If the is null or empty. - /// In the following cases: - /// Failure opening the LSA Policy. - /// The is too large. - /// Failure looking up the user name. - /// Failure opening LSA account (other than account not found). - /// Failure creating LSA account. - /// Failure getting LSA account policy access. - /// Failure setting LSA account policy access. - /// - public static void SetLogOnAsServicePolicy(string userName) - { - if (String.IsNullOrEmpty(userName)) - { - throw new ArgumentNullException("userName"); - } - - LSA_OBJECT_ATTRIBUTES objectAttributes = new LSA_OBJECT_ATTRIBUTES(); - objectAttributes.Initialize(); - - // All handles are delcared in advance so they can be closed on finally - LsaSafeHandle policyHandle = null; - SafeLsaMemoryHandle referencedDomains = null; - SafeLsaMemoryHandle sids = null; - LsaSafeHandle accountHandle = null; - - try - { - uint status = LsaOpenPolicy( - IntPtr.Zero, - ref objectAttributes, - POLICY_LOOKUP_NAMES | POLICY_CREATE_ACCOUNT, - out policyHandle); - - if (status != 0) - { - throw new InvalidOperationException(@"CannotOpenPolicyErrorMessage"); - } - - // Unicode strings have a maximum length of 32KB. We don't want to create - // LSA strings with more than that. User lengths are much smaller so this check - // ensures userName's length is useful - if (userName.Length > UNLEN + DNLEN + EXTRA_LENGTH) - { - throw new InvalidOperationException(@"UserNameTooLongErrorMessage"); - } - - LSA_UNICODE_STRING lsaUserName = new LSA_UNICODE_STRING(); - lsaUserName.Set(userName); - - LSA_UNICODE_STRING[] names = new LSA_UNICODE_STRING[1]; - names[0].Set(userName); - - status = LsaLookupNames2( - policyHandle, - 0, - 1, - new LSA_UNICODE_STRING[] { lsaUserName }, - out referencedDomains, - out sids); - - if (status != 0) - { - throw new InvalidOperationException(@"CannotLookupNamesErrorMessage"); - } - - LSA_TRANSLATED_SID2 sid = (LSA_TRANSLATED_SID2)Marshal.PtrToStructure(sids.Memory, typeof(LSA_TRANSLATED_SID2)); - - - status = LsaOpenAccount(policyHandle, - sid.SID, - ACCOUNT_VIEW | ACCOUNT_ADJUST_SYSTEM_ACCESS, - out accountHandle); - - uint currentAccess = 0; - - if (status == 0) - { - status = LsaGetSystemAccessAccount(accountHandle, out currentAccess); - - if (status != 0) - { - throw new InvalidOperationException(@"CannotGetAccountAccessErrorMessage"); - } - - } - else if (status == STATUS_OBJECT_NAME_NOT_FOUND) - { - status = LsaCreateAccount( - policyHandle, - sid.SID, - ACCOUNT_ADJUST_SYSTEM_ACCESS, - out accountHandle); - - if (status != 0) - { - throw new InvalidOperationException(@"CannotCreateAccountAccessErrorMessage"); - } - } - else - { - throw new InvalidOperationException(@"CannotOpenAccountErrorMessage"); - } - - if ((currentAccess & SECURITY_ACCESS_SERVICE_LOGON) == 0) - { - status = LsaSetSystemAccessAccount( - accountHandle, - currentAccess | SECURITY_ACCESS_SERVICE_LOGON); - if (status != 0) - { - throw new InvalidOperationException(@"CannotSetAccountAccessErrorMessage"); - } - } - } - finally - { - if (policyHandle != null) { policyHandle.Close(); } - if (referencedDomains != null) { referencedDomains.Close(); } - if (sids != null) { sids.Close(); } - if (accountHandle != null) { accountHandle.Close(); } - } - } - } - } -"@ - - try - { - $existingType=[LogOnAsServiceHelper.NativeMethods] - } - catch - { - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotOpenPolicyErrorMessage",$LocalizedData.CannotOpenPolicyErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("UserNameTooLongErrorMessage",$LocalizedData.UserNameTooLongErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotLookupNamesErrorMessage",$LocalizedData.CannotLookupNamesErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotOpenAccountErrorMessage",$LocalizedData.CannotOpenAccountErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotCreateAccountAccessErrorMessage",$LocalizedData.CannotCreateAccountAccessErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotGetAccountAccessErrorMessage",$LocalizedData.CannotGetAccountAccessErrorMessage) - $logOnAsServiceText=$logOnAsServiceText.Replace("CannotSetAccountAccessErrorMessage",$LocalizedData.CannotSetAccountAccessErrorMessage) - - if(IsNanoServer) - { - $logOnAsServiceText = "#define CORECLR`n" + $logOnAsServiceText - } - $null = Add-Type $logOnAsServiceText -PassThru -Debug:$false - } - - if($userName.StartsWith(".\")) - { - $userName = $userName.Substring(2) - } - - try - { - [LogOnAsServiceHelper.NativeMethods]::SetLogOnAsServicePolicy($userName) - } - catch - { - $message = $LocalizedData.ErrorSetingLogOnAsServiceRightsForUser -f $userName,$_.Exception.Message - ThrowInvalidArgumentError "ErrorSetingLogOnAsServiceRightsForUser" $message - } -} - -function Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_ServiceResource/MSFT_ServiceResource.schema.mof deleted file mode 100644 index 5e9fe8151ebd2fc721d3fa4227a6f7f3d324a93c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1548 zcmb`HTT8=05QWdP;C~2tQV`KseX6zvL2I$%OA$%aphbuu3%q^{x)cXa3E$ z=h3h1$9$RntpZt$cp4$l1$J#+>u$mR3QR`aoCt;wbi{p${Ta3=o?)UzEA#&0V+2_D z^$7Ca$IawC*HriHlsu0swr_slf!ITN1jn533%_1p>4CP~C8#cyRd=nEXT4a|u7kDH8$Kp<%3{CPRkG^w|KlxZ=!DFS zsEecPQ#H^U!`AxHt;|!43=DiFhyH0u%ZydtCdp=VHg%_Hx2oF=J7N``QOxRmFVGD6#sRNx&(p;4L7>uh2#>2B~)uZMeYQWz6v>R{w9TlG9#KZtUV|7$J>8jMyZIgu&|s zBNr?TN5L#Su@;L9IfVu*^nS6ZfR|>WZ1ZGwX{|Y5%5CRbG#Uz*m|eTZGzmd#6z93` zMHl+$#k~(vrVvIyI(Zi6Srb|@#h;5pGe&qWk;RB}l-Optm*}rzh*%BMZW{L)rJy~a zW1nD6(!1zO4E@yarf!FRf4`PkpV2-PwTE$+R;C%(;YfJ78_uJGRQ{k`C2r{i!7<4$ zQ_R}!Ft?_zucLgxRQUPn`$p^MvfW@QY!@GI*5|)bI`8D|S>k?Ub0N37uJFTtxH4N% zIA>*-MaK8+lv%f>aK_9!Ze1dbWPs=-x!kB`bY-f2JjXZ{`y)wY4OTwIC6yDYEBBwT zScvi$-|b?587owZ&)I3psoM(iepEi~%ts=XDVA=H)x_FMS(4{b_D(f}5VbOt-JHccQ9V{_EaBOcI(EyNP}~ql?kDbe(Z*gp~EQe4?cA%vmBv zFV?fm{^ROoep2tajwGQm3sx~}wNm!)&+Gq5RwbC9$VP?C8jM}su1;x|oc<@Sac9kc zeg|_`uuO%|6i$7a<)p8ekvIOmUt|3Y+zE(mw)E6$BabdEj|A`~naX^--!b{JC%DV- zTQL&Izp%OC?7Zc*WI7&mU*DSIvv9h{^xoH1>uXJ6_#Rt0V#R#DCRT*&KNc#QHx6d{ hc_-`~&hKk>SXh=z*xoxXJ|9@*1A}7#w|q zqa~ru-fzFkU0<=}^{rmVl4Chb3i+j6abahnt%@s#=Mt_JVu`uK{>&%LyKpicA@%0ukWJ^ZDw;Zz$lUdJI@hJ2vlT7^lY+aUdV6o*q z{OcT2T-C>}UVV)tsnk~+&&KNWM_c(hOte+T)koVOF~ty9YW%TAs;U=vYc;E}pR@Cb zovN`q>sdX6bf;7`3{^E1ch{+)8|hM3RV2R(8{;Ad8?PW1dY~z4Ck`CEgEeS>JhRR{ zsO!tp%~e)jR>i}hQdok#`t@YIC?8r=wkL@8^i=*v)y3&m!vstP0rlb0y zx5oUHZjtUnEAsrh6a8LyI9&_Kvc?n4#6eLRPW}%}{ou$32T3UPEcls#N=+9~t0fnv zlCi>uHY*wSv7KDY18?1KE<}+}LqAk9{`#xxozY2;Tj7|+DswI(S6ENtINENX_WJvL zvtyI-&#rHz50eqbpVFoB#Tj$V?E+z_fWLU>zX|*{4h$))oqw6rIgyH2!b1el< zEVt)|%S2|-vbx;Z_%$Cb-(9fe;o=*(CM#qswElC}%T`c*sh_b1TwW6BSV_c&)69&g zGBSQCykfx3iL0sDw}q}bmtL85Slf2tzkY_(tI`?4`6=m6-;9ajt=76XBRHoV`KAkV zOn5$cIwaFcc^`A;q-am616n7mlf~QH_3>sVsa~ySP|Z&m%#6Svr&_zA7jGBnb0^*1 zd~Ii{^`vSmJ98X+4zD+Lr6SRYy?W1ED?6D+zR$s@{U5xt+ff->v66nd*j#AjRprf- zueH`|a8D!8XWUA_nQX?L%~+GvP9D`xeKNR5-f=4I|Jn3Itu)}_yI_RNFpj$xbg zqMFp`&!6}HDXLGd0S!Ax3K^xWGn-A8Ywu>3w~J|Kyj*YDYiqFDe>i(`eT{9?qpHD{ z5Px^UlJW9S^LhudmsiD{*LP5lbI}8LZLhKT(j@`4>#VQZOohg=1E?S)Yh z*%vuYs{Jf^BQ^^=lE_kIo>|l>N50ebzI}dYA-$q^B(!=NRwuA}?mN7lj=PH#=KL{O zXSXq(*S{b4>ujQ|r;qk|yQsCOl+N9fnlEguJ0;wAs9pIaScoCJbR|~5(Eo^wZqkho zr)K>N`!W9^;3s!Oyw{RHGMoo~zuyiOvNN*}bgfl#tr^n=_#Z^=zYyf%1pcSsk?(&2 DTf{pi diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.psm1 deleted file mode 100644 index f50a7df..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.psm1 +++ /dev/null @@ -1,1136 +0,0 @@ -# A global variable that contains localized messages. -data LocalizedData -{ -# culture="en-US" -ConvertFrom-StringData @' -UserWithName=User: {0} -RemoveOperation=Remove -AddOperation=Add -SetOperation=Set -ConfigurationStarted=Configuration of user {0} started. -ConfigurationCompleted=Configuration of user {0} completed successfully. -UserCreated=User {0} created successfully. -UserUpdated=User {0} properties updated successfully. -UserRemoved=User {0} removed successfully. -NoConfigurationRequired=User {0} exists on this node with the desired properties. No action required. -NoConfigurationRequiredUserDoesNotExist=User {0} does not exist on this node. No action required. -InvalidUserName=The name {0} cannot be used. Names may not consist entirely of periods and/or spaces, or contain these characters: {1} -UserExists=A user with the name {0} exists. -UserDoesNotExist=A user with the name {0} does not exist. -PropertyMismatch=The value of the {0} property is expected to be {1} but it is {2}. -PasswordPropertyMismatch=The value of the {0} property does not match. -AllUserPropertisMatch=All {0} {1} properties match. -ConnectionError = There could be a possible connection error while trying to use the System.DirectoryServices API's. -MultipleMatches = There could be a possible multiple matches exception while trying to use the System.DirectoryServices API's. -'@ -} - -Import-LocalizedData LocalizedData -FileName MSFT_UserResource.strings.psd1 - -Import-Module "$PSScriptRoot\..\DSCResourceHelper.psm1" - -if (-not (IsNanoServer)) -{ - Add-Type -AssemblyName 'System.DirectoryServices.AccountManagement' -} - -<# -.Synopsys -The Get-TargetResource cmdlet. -#> -function Get-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName - ) - - if (IsNanoServer) - { - Get-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - Get-TargetResourceOnFullSKU @PSBoundParameters - } -} - -<# -.Synopsys -The Set-TargetResource cmdlet. -#> -function Set-TargetResource -{ - [CmdletBInding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - if (IsNanoServer) - { - Set-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - Set-TargetResourceOnFullSKU @PSBoundParameters - } -} - -<# -.Synopsys -The Test-TargetResource cmdlet is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResource -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - if (IsNanoServer) - { - Test-TargetResourceOnNanoServer @PSBoundParameters - } - else - { - Test-TargetResourceOnFullSKU @PSBoundParameters - } -} - - -<# -.Synopsys -The Get-TargetResource cmdlet. -#> -function Get-TargetResourceOnFullSKU -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName - ) - - Set-StrictMode -Version Latest - - ValidateUserName -UserName $UserName - - # Try to find a user by a name. - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList ([System.DirectoryServices.AccountManagement.ContextType]::Machine) - - try - { - $user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($principalContext, $UserName); - if($user -ne $null) - { - # The user is found. Return all user properties and Ensure="Present". - $returnValue = @{ - UserName = $user.Name; - Ensure = "Present"; - FullName = $user.DisplayName; - Description = $user.Description; - Disabled = -not $user.Enabled; - PasswordNeverExpires = $user.PasswordNeverExpires; - PasswordChangeRequired = $null; - PasswordChangeNotAllowed = $user.UserCannotChangePassword; - } - - return $returnValue; - } - - # The user is not found. Return Ensure=Absent. - return @{ - UserName = $UserName; - Ensure = "Absent"; - } - } - catch - { - ThrowExceptionDueToDirectoryServicesError -ErrorId "MultipleMatches" -ErrorMessage ($LocalizedData.MultipleMatches + $_) - } - finally - { - if($user -ne $null) - { - $user.Dispose(); - } - - $principalContext.Dispose(); - } -} - -<# -.Synopsys -The Set-TargetResource cmdlet. -#> -function Set-TargetResourceOnFullSKU -{ - [CmdletBInding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - Set-StrictMode -Version Latest - - Write-Verbose -Message ($LocalizedData.ConfigurationStarted -f $UserName) - - ValidateUserName -UserName $UserName - - - # Try to find a user by a name. - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList ([System.DirectoryServices.AccountManagement.ContextType]::Machine) - - try - { - $user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($principalContext, $UserName); - if($Ensure -eq "Present") - { - # Ensure is set to "Present". - - $whatIfShouldProcess = $true; - $userExists = $false; - $saveChanges = $false; - - if($user -eq $null) - { - # A user does not exist. Check WhatIf for adding a user. - $whatIfShouldProcess = $pscmdlet.ShouldProcess($LocalizedData.UserWithName -f $UserName, $LocalizedData.AddOperation); - } - else - { - # A user exists. - $userExists = $true; - - # Check WhatIf for setting a user. - $whatIfShouldProcess = $pscmdlet.ShouldProcess($LocalizedData.UserWithName -f $UserName, $LocalizedData.SetOperation); - } - - if($whatIfShouldProcess) - { - if(-not $userExists) - { - # The user with the provided name does not exist. Add a new user. - $user = New-Object System.DirectoryServices.AccountManagement.UserPrincipal -ArgumentList $principalContext - $user.Name = $UserName; - $saveChanges = $true; - } - - # Set user properties. - if($PSBoundParameters.ContainsKey('FullName') -and (-not $userExists -or $FullName -ne $user.DisplayName)) - { - $user.DisplayName = $FullName; - $saveChanges = $true; - } - else - { - if(-not $userExists) - { - # For a newly created user, set the DisplayName property to an empty string. By default DisplayName is set to user's name. - $user.DisplayName = [String]::Empty; - } - } - - if($PSBoundParameters.ContainsKey('Description') -and (-not $userExists -or $Description -ne $user.Description)) - { - $user.Description = $Description; - $saveChanges = $true; - } - - # Password. Set the password regardless of the state of the user. - if($PSBoundParameters.ContainsKey('Password')) - { - $user.SetPassword($Password.GetNetworkCredential().Password); - $saveChanges = $true; - } - - if($PSBoundParameters.ContainsKey('Disabled') -and (-not $userExists -or $Disabled -eq $user.Enabled)) - { - $user.Enabled = -not $Disabled; - $saveChanges = $true; - } - - if($PSBoundParameters.ContainsKey('PasswordNeverExpires') -and (-not $userExists -or $PasswordNeverExpires -ne $user.PasswordNeverExpires)) - { - $user.PasswordNeverExpires = $PasswordNeverExpires; - $saveChanges = $true; - } - - if($PSBoundParameters.ContainsKey('PasswordChangeRequired')) - { - if($PasswordChangeRequired) - { - # Expire the password. This will force the user to change the password at the next logon. - $user.ExpirePasswordNow(); - $saveChanges = $true; - } - } - - if($PSBoundParameters.ContainsKey('PasswordChangeNotAllowed') -and (-not $userExists -or $PasswordChangeNotAllowed -ne $user.UserCannotChangePassword)) - { - $user.UserCannotChangePassword = $PasswordChangeNotAllowed; - $saveChanges = $true; - - } - - if($saveChanges) - { - $user.Save(); - - # Send an operation success verbose message. - if($userExists) - { - Write-Verbose -Message ($LocalizedData.UserUpdated -f $UserName) - } - else - { - Write-Verbose -Message ($LocalizedData.UserCreated -f $UserName) - } - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequired -f $UserName) - } - } - } - else - { - # Ensure is set to "Absent". - if($user -ne $null) - { - # The user exists. - if($pscmdlet.ShouldProcess($LocalizedData.UserWithName -f $UserName, $LocalizedData.RemoveOperation)) - { - # Remove the user by the provided name. - $user.Delete(); - } - - Write-Verbose -Message ($LocalizedData.UserRemoved -f $UserName) - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequiredUserDoesNotExist -f $UserName) - } - } - } - catch - { - ThrowExceptionDueToDirectoryServicesError -ErrorId "MultipleMatches" -ErrorMessage ($LocalizedData.MultipleMatches + $_) - } - finally - { - if($user -ne $null) - { - $user.Dispose(); - } - - $principalContext.Dispose(); - } - - Write-Verbose -Message ($LocalizedData.ConfigurationCompleted -f $UserName) -} - -<# -.Synopsys -The Test-TargetResource cmdlet is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResourceOnFullSKU -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - Set-StrictMode -Version Latest - - ValidateUserName -UserName $UserName - - # Try to find a user by a name. - $principalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList ([System.DirectoryServices.AccountManagement.ContextType]::Machine) - - try - { - $user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($principalContext, $UserName); - if($user -eq $null) - { - # A user with the provided name does not exist. - Write-Log -Message ($LocalizedData.UserDoesNotExist -f $UserName) - - if($Ensure -eq "Absent") - { - return $true; - } - else - { - return $false; - } - } - - # A user with the provided name exists. - Write-Log -Message ($LocalizedData.UserExists -f $UserName) - - # Validate separate properties. - if($Ensure -eq "Absent") - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Ensure", "Absent", "Present") - return $false; # The Ensure property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('FullName') -and $FullName -ne $user.DisplayName) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "FullName", $FullName, $user.DisplayName) - return $false; # The FullName property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('Description') -and $Description -ne $user.Description) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Description", $Description, $user.Description) - return $false; # The Description property does not match. Return $false; - } - - # Password - if($PSBoundParameters.ContainsKey('Password')) - { - if(-not $principalContext.ValidateCredentials($UserName, $Password.GetNetworkCredential().Password)) - { - Write-Log -Message ($LocalizedData.PasswordPropertyMismatch -f "Password") - return $false; # The Password property does not match. Return $false; - } - } - - if($PSBoundParameters.ContainsKey('Disabled') -and $Disabled -eq $user.Enabled) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Disabled", $Disabled, $user.Enabled) - return $false; # The Disabled property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('PasswordNeverExpires') -and $PasswordNeverExpires -ne $user.PasswordNeverExpires) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "PasswordNeverExpires", $PasswordNeverExpires, $user.PasswordNeverExpires) - return $false; # The PasswordNeverExpires property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('PasswordChangeNotAllowed') -and $PasswordChangeNotAllowed -ne $user.UserCannotChangePassword) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "PasswordChangeNotAllowed", $PasswordChangeNotAllowed, $user.UserCannotChangePassword) - return $false; # The PasswordChangeNotAllowed property does not match. Return $false; - } - } - catch - { - ThrowExceptionDueToDirectoryServicesError -ErrorId "ConnectionError" -ErrorMessage ($LocalizedData.ConnectionError + $_) - } - - finally - { - if($user -ne $null) - { - $user.Dispose(); - } - - $principalContext.Dispose(); - - } - - # All properties match. Return $true. - Write-Log -Message ($LocalizedData.AllUserPropertisMatch -f "User", $UserName) - return $true; -} - - -<# -.Synopsys -The Get-TargetResource cmdlet. -#> -function Get-TargetResourceOnNanoServer -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName - ) - - Set-StrictMode -Version Latest - - ValidateUserName -UserName $UserName - - # Try to find a user by a name. - try - { - [Microsoft.PowerShell.Commands.LocalUser] $user = Get-LocalUser -Name $UserName -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.ToString().Contains('UserNotFoundException')) - { - # The user is not found. Return Ensure=Absent. - return @{ - UserName = $UserName; - Ensure = "Absent"; - } - } - Throw-TerminatingError -ErrorRecord $_ - } - - # The user is found. Return all user properties and Ensure="Present". - $returnValue = @{ - UserName = $user.Name; - Ensure = "Present"; - FullName = $user.FullName; - Description = $user.Description; - Disabled = -not $user.Enabled; - PasswordChangeRequired = $null; - PasswordChangeNotAllowed = -not $user.UserMayChangePassword; - } - - if ($user.PasswordExpires) - { - $returnValue.Add('PasswordNeverExpires', $false) - } - else - { - $returnValue.Add('PasswordNeverExpires', $true) - } - - return $returnValue; -} - -<# -.Synopsys -The Set-TargetResource cmdlet. -#> -function Set-TargetResourceOnNanoServer -{ - [CmdletBInding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - Set-StrictMode -Version Latest - - Write-Verbose -Message ($LocalizedData.ConfigurationStarted -f $UserName) - - ValidateUserName -UserName $UserName - - ## Try to find a user by a name. - [bool] $userExists = $false - try - { - [Microsoft.PowerShell.Commands.LocalUser] $user = Get-LocalUser -Name $UserName -ErrorAction Stop - $userExists = $true; - } - catch [System.Exception] - { - if ($_.CategoryInfo.ToString().Contains('UserNotFoundException')) - { - # The user is not found. - Write-Log -Message ($LocalizedData.UserDoesNotExist -f $UserName) - } - else - { - Throw-TerminatingError -ErrorRecord $_ - } - } - - if($Ensure -eq "Present") - { - # Ensure is set to "Present". - - if(-not $userExists) - { - # The user with the provided name does not exist. Add a new user. - New-LocalUser -Name $UserName -NoPassword - Write-Verbose -Message ($LocalizedData.UserCreated -f $UserName) - } - - # Set user properties. - if($PSBoundParameters.ContainsKey('FullName')) - { - if (-not $userExists -or $FullName -ne $user.FullName) - { - if ($FullName -eq $null) - { - Set-LocalUser -Name $UserName -FullName ([String]::Empty) - } - else - { - Set-LocalUser -Name $UserName -FullName $FullName - } - } - } - else - { - if (-not $userExists) - { - # For a newly created user, set the DisplayName property to an empty string. By default DisplayName is set to user's name. - Set-LocalUser -Name $UserName -FullName ([String]::Empty) - } - } - - if($PSBoundParameters.ContainsKey('Description') -and (-not $userExists -or $Description -ne $user.Description)) - { - if ($Description -eq $null) - { - Set-LocalUser -Name $UserName -Description ([String]::Empty) - } - else - { - Set-LocalUser -Name $UserName -Description $Description - } - } - - # Password. Set the password regardless of the state of the user. - if($PSBoundParameters.ContainsKey('Password')) - { - Set-LocalUser -Name $UserName -Password $Password.Password - } - - if($PSBoundParameters.ContainsKey('Disabled') -and (-not $userExists -or $Disabled -eq $user.Enabled)) - { - if ($Disabled) - { - Disable-LocalUser -Name $UserName - } - else - { - Enable-LocalUser -Name $UserName - } - } - - $existingUserPasswordNeverExpires = (($userExists) -and ($user.PasswordExpires -eq $null)) - if($PSBoundParameters.ContainsKey('PasswordNeverExpires') -and (-not $userExists -or ($PasswordNeverExpires -ne $existingUserPasswordNeverExpires))) - { - Set-LocalUser -Name $UserName -PasswordNeverExpires:$passwordNeverExpires - } - - # NOTE: The parameter name and the property name have opposite meaning. - [bool] $expected = -not $PasswordChangeNotAllowed - [bool] $actual = $expected - if($userExists) { - $actual = $user.UserMayChangePassword - } - if($PSBoundParameters.ContainsKey('PasswordChangeNotAllowed') -and (-not $userExists -or $expected -ne $actual)) - { - Set-LocalUser -Name $UserName -UserMayChangePassword $expected - } - } - else - { - # Ensure is set to "Absent". - if($userExists) - { - # The user exists. - Remove-LocalUser -Name $UserName - - Write-Verbose -Message ($LocalizedData.UserRemoved -f $UserName) - } - else - { - Write-Verbose -Message ($LocalizedData.NoConfigurationRequiredUserDoesNotExist -f $UserName) - } - } - - - Write-Verbose -Message ($LocalizedData.ConfigurationCompleted -f $UserName) -} - -<# -.Synopsys -The Test-TargetResource cmdlet is used to validate if the resource is in a state as expected in the instance document. -#> -function Test-TargetResourceOnNanoServer -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateSet("Present", "Absent")] - [System.String] - $Ensure = "Present", - - [System.String] - $FullName, - - [System.String] - $Description, - - [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSCredential] - $Password, - - [System.Boolean] - $Disabled, - - [System.Boolean] - $PasswordNeverExpires, - - [System.Boolean] - $PasswordChangeRequired, - - [System.Boolean] - $PasswordChangeNotAllowed - ) - - Set-StrictMode -Version Latest - - ValidateUserName -UserName $UserName - - # Try to find a user by a name. - try - { - [Microsoft.PowerShell.Commands.LocalUser] $user = Get-LocalUser -Name $UserName -ErrorAction Stop - } - catch [System.Exception] - { - if ($_.CategoryInfo.ToString().Contains('UserNotFoundException')) - { - # The user is not found. Return Ensure=Absent. - if($Ensure -eq "Absent") - { - return $true - } - else - { - return $false - } - } - Throw-TerminatingError -ErrorRecord $_ - } - - # A user with the provided name exists. - Write-Log -Message ($LocalizedData.UserExists -f $UserName) - - # Validate separate properties. - if($Ensure -eq "Absent") - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Ensure", "Absent", "Present") - return $false; # The Ensure property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('FullName') -and $FullName -ne $user.FullName) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "FullName", $FullName, $user.FullName) - return $false; # The FullName property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('Description') -and $Description -ne $user.Description) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Description", $Description, $user.Description) - return $false; # The Description property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('Password')) - { - if(-not (ValidateCredentialsOnNanoServer -UserName $UserName -Password $Password.Password)) - { - Write-Log -Message ($LocalizedData.PasswordPropertyMismatch -f "Password") - return $false; # The Password property does not match. Return $false; - } - } - - if($PSBoundParameters.ContainsKey('Disabled') -and $Disabled -eq $user.Enabled) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "Disabled", $Disabled, $user.Enabled) - return $false; # The Disabled property does not match. Return $false; - } - - $existingUserPasswordNeverExpires = ($user.PasswordExpires -eq $null) - if($PSBoundParameters.ContainsKey('PasswordNeverExpires') -and $PasswordNeverExpires -ne $existingUserPasswordNeverExpires) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "PasswordNeverExpires", $PasswordNeverExpires, $existingUserPasswordNeverExpires) - return $false; # The PasswordNeverExpires property does not match. Return $false; - } - - if($PSBoundParameters.ContainsKey('PasswordChangeNotAllowed') -and $PasswordChangeNotAllowed -ne (-not $user.UserMayChangePassword)) - { - Write-Log -Message ($LocalizedData.PropertyMismatch -f "PasswordChangeNotAllowed", $PasswordChangeNotAllowed, (-not $user.UserMayChangePassword)) - return $false; # The PasswordChangeNotAllowed property does not match. Return $false; - } - - # All properties match. Return $true. - Write-Log -Message ($LocalizedData.AllUserPropertisMatch -f "User", $UserName) - return $true; -} - -<# -.Synopsis -Validates the User name for invalid charecters. -#> -function ValidateUserName -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName - ) - - # Check if the name consists of only periods and/or white spaces. - $wrongName = $true; - for($i = 0; $i -lt $UserName.Length; $i++) - { - if(-not [Char]::IsWhiteSpace($UserName, $i) -and $UserName[$i] -ne '.') - { - $wrongName = $false; - break; - } - } - - $invalidChars = @('\','/','"','[',']',':','|','<','>','+','=',';',',','?','*','@') - - if($wrongName) - { - ThrowInvalidArgumentError -ErrorId "UserNameHasOnlyWhiteSpacesAndDots" -ErrorMessage ($LocalizedData.InvalidUserName -f $UserName, [string]::Join(" ", $invalidChars)) - } - - if($UserName.IndexOfAny($invalidChars) -ne -1) - { - ThrowInvalidArgumentError -ErrorId "UserNameHasInvalidCharachter" -ErrorMessage ($LocalizedData.InvalidUserName -f $UserName, [string]::Join(" ", $invalidChars)) - } -} - -<# -.Synopsis -Throws an argument error. -#> -function ThrowInvalidArgumentError -{ - [CmdletBinding()] - param - ( - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorMessage - ) - - $errorCategory=[System.Management.Automation.ErrorCategory]::InvalidArgument - $exception = New-Object System.ArgumentException $ErrorMessage; - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $ErrorId, $errorCategory, $null - throw $errorRecord -} - -function ThrowExceptionDueToDirectoryServicesError -{ - [CmdletBinding()] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorId, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ErrorMessage - ) - - $errorCategory = [System.Management.Automation.ErrorCategory]::ConnectionError - $exception = New-Object System.ArgumentException $ErrorMessage - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $ErrorId, $errorCategory, $null - throw $errorRecord -} - -Function Throw-TerminatingError -{ - param( - [string] $Message, - [System.Management.Automation.ErrorRecord] $ErrorRecord - ) - - - if ($ErrorRecord -ne $null) - { - $exception = new-object "System.InvalidOperationException" $Message,$ErrorRecord.Exception - } - else - { - $exception = new-object "System.InvalidOperationException" $Message - } - $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception,"MachineStateIncorrect","InvalidOperation",$null - throw $errorRecord -} - -<# -.Synopsis -Writes either to Verbose or ShouldProcess channel. -#> -function Write-Log -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $Message - ) - - if ($PSCmdlet.ShouldProcess($Message, $null, $null)) - { - Write-Verbose $Message - } -} - -<# -.Synopsis -Validates the local user's credentials on the local machine. -#> -Function ValidateCredentialsOnNanoServer -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $UserName, - - [ValidateNotNullOrEmpty()] - [securestring] - $Password - ) - - $source = @' - [Flags] - private enum LogonType - { - Logon32LogonInteractive = 2, - Logon32LogonNetwork, - Logon32LogonBatch, - Logon32LogonService, - Logon32LogonUnlock, - Logon32LogonNetworkCleartext, - Logon32LogonNewCredentials - } - - [Flags] - private enum LogonProvider - { - Logon32ProviderDefault = 0, - Logon32ProviderWinnt35, - Logon32ProviderWinnt40, - Logon32ProviderWinnt50 - } - - [DllImport("api-ms-win-security-logon-l1-1-1.dll", CharSet = CharSet.Unicode, SetLastError = true)] - private static extern Boolean LogonUser( - String lpszUserName, - String lpszDomain, - IntPtr lpszPassword, - LogonType dwLogonType, - LogonProvider dwLogonProvider, - out IntPtr phToken - ); - - - [DllImport("api-ms-win-core-handle-l1-1-0.dll", - EntryPoint = "CloseHandle", SetLastError = true, - CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)] - internal static extern bool CloseHandle(IntPtr handle); - - public static bool ValidateCredentials(string username, SecureString password) - { - IntPtr tokenHandle = IntPtr.Zero; - IntPtr unmanagedPassword = IntPtr.Zero; - - unmanagedPassword = SecureStringMarshal.SecureStringToCoTaskMemUnicode(password); - - try - { - return LogonUser( - username, - null, - unmanagedPassword, - LogonType.Logon32LogonInteractive, - LogonProvider.Logon32ProviderDefault, - out tokenHandle); - } - catch - { - return false; - } - finally - { - if (tokenHandle != IntPtr.Zero) - { - CloseHandle(tokenHandle); - } - if (unmanagedPassword != IntPtr.Zero) { - Marshal.ZeroFreeCoTaskMemUnicode(unmanagedPassword); - } - unmanagedPassword = IntPtr.Zero; - } - } -'@ - - Add-Type -PassThru -Namespace Microsoft.Windows.DesiredStateConfiguration.NanoServer.UserResource ` - -Name CredentialsValidationTool -MemberDefinition $source -Using System.Security -ReferencedAssemblies System.Security.SecureString.dll | Out-Null - return [Microsoft.Windows.DesiredStateConfiguration.NanoServer.UserResource.CredentialsValidationTool]::ValidateCredentials($UserName, $Password) -} - - -Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/MSFT_UserResource.schema.mof deleted file mode 100644 index 22872663f5ccb4d467607d51f0158cca87f11d7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 982 zcmbu7-Ae*N6vfYT(EqUPQ-MUi)>HWb5}Ne&A`-4HwqUEdYbN2pUj6Ph%`XCpVRmMA z&N=tod*|!3siOL7D`Pw=)`&IHK&g%t>P#m(^%?3|1qG^rNWi7)!kelN_l2{eAK;pT zVOwAib)e2tJy1<|@bC4sMBakWh&G1RVISz6c>}Tv>dJk^+C-V|hpPvmo4STM^@y2r z_m`^2&BD*Zt;x+TjG^nyodFS8{FBeo6!Fey1V0>`v}BGT7-s%hCV_|a9hkF zgFvI3wn#zs2^tz4ovZ(IuSH@s#o?ZFo|pT){Lb_7K7uqd(6EC9cZDSP1axGn*AU^& ziD87h%Wa(*q_}d{JxY%lJ@>Fn%`jXT!~o)qlclWjlo*QsG45Mj{TcE<^3E_u0IT$y z#5g7>O{2(9qW*8K(o=6HyLQR60iVSnLN;-d$Z=1xa$%8cC>YhF`svL{Ss{GcZc(nC z-5pbZYdD%do;WwE>(63OU)WYxrCEM0yDdTrQ|#DlaZW-AMlnV?fO#x2vweoBQ}82* zIokZRIpM)RKbwpTo3u-{5wh3FJ4;zQT0n^W)+p<&f5qw~#TUwS-$Jqn>A6U+S?f=| z&r9Owt>}v0fAO$;hoR7Ey*+szA54YAM#U`f6b7|>g|>NcU8pLI)=O75myVe>94`t( zMyX+w36t+KYn0j3dCxI_?{pPe35nC@#rC(C=xnV_-*0S%lT4$$Ws;Mw$WrE0i0Iwf J`kFE6`x9#yua^J- diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/ko-KR/MSFT_UserResource.strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_UserResource/ko-KR/MSFT_UserResource.strings.psd1 deleted file mode 100644 index ef7543b37c84dd63eb62aae49ae12da4c10f5a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2170 zcmcIl&r1|x7=F4{5JeDl@bH0wdT4F6pOT=sR))XGq&)~FuIa+AZo5-i+0DR9kg$jT zfuLXlTdmykpwjGYU=r0F0)q}7J#_I}J@0(3GplP-5X*eu?9BT;@AE$IkNNep915)% zMjv_+Llk$>j|lc4h#FMm7*27m;U2^pS_b*6!*M=QXha*=N}T6@8C5(}OS@XWKZyWs zj&YTfC)`!>eH*%Pj<#3PjTHSPafxe+-f!~0kM{xoGk71x5C(W3K!R(8UiV=yN^@1T zFGfj`*L9*Mx$o>#kmYLPi6Pu_c^TxHT7ta9+pjN3*QNlwr?&D$UHF$*mf0W+r(p#%ZTox(Z8aDd;zt zwWu5aR{V5^syXRgkK=KN`R=`f!K{tESf2i9DU90%Efgkf%aV6;D(uYB@?w!vf5)ew zYlu-uKgwwX%@`qL>FUijC4BwNavQ#PX4c|%s-9Spjehg`OjmD%U5Rw2irprCca6Fn zUQozc+VfcUfvsy;c#LHms6;+HxYYASVgGD34!jb(H8VK7nAJ5Y9T0XB=Hp3)l}sz` zPrrR+OI}w$4>}&cR#XHh{j9^svy5itF^@=ulR_5Bl;r>LFz3;N0~5$Fz)h{QwG**wdJSiya) zSv`ZB8H4DRq%K`lOR8CBb^xLEZWLR2e~0g7e&6DA`JTy_sFBgPK&nJCE1D^Mow`8% zU_Qx6xBjpune8LFa8|NjHv4UE+>uEu)#~-D=-S5qkGZ_`O!eXvU;l^QstW2o_ ZQA=TWZX~x8Q~4@x{w_)c75s9_{u_XecYOc= diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.psm1 deleted file mode 100644 index f16256d..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.psm1 +++ /dev/null @@ -1,113 +0,0 @@ -# -# WaitForAll -# - -# -# The Get-TargetResource cmdlet. -# -function Get-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - return PSDSCxMachine\Get-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeName.Count ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit -} - -# -# The Set-TargetResource cmdlet. -# -function Set-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - PSDSCxMachine\Set-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeName.Count ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit ` - -Verbose:$($PSBoundParameters["Verbose"] -eq $true) -} - -# -# Test-TargetResource -# -# -function Test-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - return PSDSCxMachine\Test-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeName.Count ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit ` - -Verbose:$($PSBoundParameters["Verbose"] -eq $true) -} - - - -Export-ModuleMember -Function *-TargetResource \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForAll/MSFT_WaitForAll.schema.mof deleted file mode 100644 index 52f0af5f1557a8794d9775c1b436d74f80671b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1448 zcmbu9PjAye5XI+=#CKSg3rG+Zs5q1prHX{q1_?rYND&H&L#;Y)u^mEG@ztTfH|r%S zq*0{Gvb`S9pZDI(?w{X}?8+(|+Bci>3|8`-T4pu&p^aEQwjDcbua3VfyX0zoJ+&M! zS!(V{Yn@{)ZH#4(UD1c0GsiQ-{t>?+cV=(#DT&KLFmoggYuR?}i9NIjeh=^~h^Vm>=>k7 z>)V&LQNi|!d5_mSJPsURW*?|4EyPCpDd)961Kzp@c7c82NTV)NFh}vkT{siwK&}Z< z|K^pw#4bgrtfgk~E{^P+Y$e~)Bk@YrYdlr0MDhQ#rmC+Uv9PDOfmiwtuhc~;eK-Ci z{8TI9--NT?0%;G9V>l&*1DHjW3E^$Db7v`4HskDrQxhNTE6;|B&A6oO4>~HP)XSQ0 zF^Jl!!yPO~{F8s>(el&81!o?7E@KB)k$vKCNuF1>ho`!#oC{`1R^?LNg2~I6pLKoM zmf10Remc7u47IoQ7E9rcQ+1nD0Kp~yG(oC7BNV>)5`u7vx&9 z)xMWn&Ak}*)-cjJw%h^gTjHesqFph^CAGyt5v;8Rp{AfI7LuYNeXYUtMUq!-scs4mE`{!0 zx&$5~uZs}}`!K#PN`$6R$e6*=!NIBRckXRSq#&qj3lCvC`#B^22_GoPo$0xg$O;7%U~a1j@fr=K#{S&r&MXurVz z5!>kqYh7_~(#JhKpxr2jah0nZc*Re>o-bC->EB2eyGBZ5jAwU{#Kg&%!XQyjVH)E+ zo8nnN5?JA9aSmXP=lXAsOk|mTnQQewi4?PW$h|xnnIsb>dML07uJfCw)m>WLHh(#| zZ`d!A(URd#eXbeLLThblJf+R5K{R2kbF|G@Z3B2faRrRtc#*FGNRL^;ni|VIdUDk%2LX{+1trM$E2U$Ekg3714kMW}? znUx}IM@_)QxnUj4m6r@zEV@H$$zY-?b0EqO!Fm=pYd!-v9kr8 hKE6sRLFL2W*Els`%@)-A&&04k{duosEk>5T1#za(H zpNT4YM=zm!X)SxJVVV#DRyuYx{sokbZX$SZ$yw(|UsyFysDcBK6 z+t#)7wNb&|5_62#M?Bs+zRXUjD=oxE`YGqNKLg&ndN#toaHLTeDVU>p;x3#Cb0F7{ zsQY5+J)>J^@TnCoA^+rGdbIpBalx4fpUc>RRb;39Ey(l6_V83!m2<%i$*NqcJ7)4S=4V|W zwqT*vmcy&~6= zt@gdts{e~&XAL8rW6K?&z9mlDFWMCYEaIcS&rn)tk?gV0Ixo~)P4ZR5t|&7s1`7 zOW+~$x|q_zK8(*rNueneGG^%5p+l$YckXRSq#&>4SJQJ&pJ65}Uh3Ijwri7AZn zY?5bvNMMDZ#o3Qpp6kCkGLdEWC9c)~1X9fA5%=A^*r=QsIH(dr&8?wG$E zJTUAR$Y{}Ur#@GWXQ8#WG@j9>Y!Hnb>l|(KRLo;vpl{Wz{-fdx4u9|OB)01{!Mo^V zAn>d2x7Na$NZ>_ps;ZYoF=|wIp?c1lTvR{x>asTE6sjcAYMoeRI>_ST5mYv2zs8TA zWLAo-9W_ma@gui_54B7~&O0ghK2ocWVC!46{;DdN-d%~F5P9Yoh`Ag8r`?|L zEJ&~OE_EXvBcsa(ZG3cl>&;Lr>7e$-S5&sP1RW%T#OI?;%cRTPU*anB&$CiWT#$VgX7yAGJ diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.psm1 deleted file mode 100644 index 166a917..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.psm1 +++ /dev/null @@ -1,129 +0,0 @@ -# -# WaitForSome -# - -# -# The Get-TargetResource cmdlet. -# -function Get-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [parameter(Mandatory)] - [Uint32] $NodeCount, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - $result = PSDSCxMachine\Get-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeCount ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit - $result.NodeCount = $NodeCount - - $result -} - -# -# The Set-TargetResource cmdlet. -# -function Set-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [parameter(Mandatory)] - [Uint32] $NodeCount, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - PSDSCxMachine\Set-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeCount ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit ` - -Verbose:$($PSBoundParameters["Verbose"] -eq $true) -} - -# -# Test-TargetResource -# -# -function Test-TargetResource -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $ResourceName, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $NodeName, - - [parameter(Mandatory)] - [Uint32] $NodeCount, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 #Powershell New-CimSession default throttle value - ) - - if ($NodeCount -gt $NodeName.Count) - { - throw "Invalid input NodeCount!" - } - - Import-Module $PSScriptRoot\..\..\PSDSCxMachine.psm1 -Verbose:$false - - return PSDSCxMachine\Test-_InternalPSDscXMachineTR ` - -RemoteResourceId $ResourceName ` - -RemoteMachine $NodeName ` - -MinimalNumberOfMachineInState $NodeCount ` - -RetryIntervalSec $RetryIntervalSec ` - -RetryCount $RetryCount ` - -ThrottleLimit $ThrottleLimit ` - -Verbose:$($PSBoundParameters["Verbose"] -eq $true) -} - - - -Export-ModuleMember -Function *-TargetResource \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/MSFT_WaitForSome.schema.mof deleted file mode 100644 index 058bbb9ed84b2a2826dcbe511680189944ebe9fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 zcmbuATW`}q5QXO%iT|)FFCan0rQ!kJ07XJ-g9M>G7*wUM16FMZY?lzB{&nCxV{hYL z(ndlnJDbT|&YUy5`TOUdeYe_X_SH(>!7ARRW!7MyS<3Fd?bzpjjr_B=1*`RaX*pi9 zG(7X(y2M)9F_tBEMZfW!Ii4Bz5BSY^GJB0rMO+SoQ%BOWmu<%$*j>BhPl8`TM8i5D zs^+uv61pcgvd8`?<{@2-@yPKLhQd}h>ARBmC-ynD$5g37vhaQt`GrVTOwVft+s9*U zQ#;%c7wiR5@9=wz&nw56*?Ve>4|OCCmG!s31KwJRonT)%+KwBsn8SMPUsxmVK(0Aa zm-EVAVHc|XKzvsk^sQ`IV1znV2xed&mWJ;o(o=?8s9CB^n;{CoJR zR>Xf3&Sndw6M8(Rr-(2?v;Rjqp`X%@$XlNy)oECB*kBizn%zJ@3*HS;sjDmNs7F6! z>!UN=+B18Kf5fhdKP6k+Bahq;BNNVz^pT!7Gd#sh=QTL~mN=o*O#Gw+89!@M76$`TJgpi&f@Tl-mc)f+shgb8QNaE?dGnVwiJCTmip3p z(*0M$Na20S-s!B{PTJ~B&S9|gh?>f8X^+UE=!S2)QM;Qo_{mzwY}US;=PAtU-fvk2 PnRM3mZxHADtXKaZ8mSIm diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/ko-KR/MSFT_WaitForSome.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WaitForSome/ko-KR/MSFT_WaitForSome.schema.mfl deleted file mode 100644 index b1ee5a004f4bd70a4d39b0b591db0e873ef2a158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1388 zcmb_cO-NKx6#f>jgf^{Q9&DqKGE>o_2r^9&Y=jy~m=PPsXASC%%sflcb_Ffk1nt|j z8F)lIH%+u~9!<|pF+n2)vz&!X7X_}g@7(J{Whh38%e%klo%5aVeD@ygU%(QI$lxIs z*$eXQ7vZ49{S304^`RH(!!~HfA_{D-na|QQ?O5C!^l=CGXmjIQucpbNx3b(Xd{*34yJAjev@`j@gN`1Nh)N9=pOCU_CP z_61($W%X?^6$;$&Sw$;mQ4ASGd1ysvO*UFV^_r(TqzzSqXjLh;Hb=-h!y_nvoc_>x z^aQg~WKq-<5q2IqUj6O4jdgM`)ld#BCxV{fdAQ}b{6VAKzwt0>IB;>9dK4nCNQOBs zlNklh diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.psm1 deleted file mode 100644 index 5db7fd6a5e1dcbe5d40a2e9b7d70d775f977b610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16522 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 R{~4fge?n{BT8QxZ`4tKd6|4XN diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.schema.mof b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/MSFT_WindowsOptionalFeature.schema.mof deleted file mode 100644 index 3b7d1915e811a7f59dd635fb1b61ead3e95d6c04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1282 zcmchX%}>HW5XIkB6aNRoNfKi8swYKAh@TO~12JYT2t;TJMU5f;>*{Z|d{k-;UJTim z&d!^e_hxoKKen`~mMR*^DdyKyM`PZ7MGCd8qV}|--Nh=Zq_PUC;nl}CR2%G@&cP4) zHpDGEW{>nrqzjESnZy?^^eNidE1)m0f_YgFNz# zI=UiDOf8l#;J@XX`sW7BPq4gEL4k}D&nZ-wuQ{KCh3Bo`o#1c$n?xTFvqLrq!zoOv zuy%UDZoJB@V|d3Y+xrSOUK^LK(6Yrd6@RKSi)f@&Xu&xTb%bB!SvYc-7ST!{ZeZMo zm#I-vk7uB#wc}YwhQxf~T|*($%jP6p(d(!B^0gn+pNN%2vYAYJP{lUiIV49LE)GlR zr?k7KSAwjAdh}U_o_%skipuNjGPAM!@0zj`a7yi6ouapCKgjLa_p^|oE5)BcjijUi}fiV=Q)O#GJeI^ySAn_TB-=e(Dxk&c$y?J9#5Gy43BIAm3*k H>?ZgE)brgO diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.schema.mfl b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.schema.mfl deleted file mode 100644 index 9f469e847f5bbf24a4b279daacbaf346d9f231cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcmb_e-Aj{E9R3B}6h#mSUU+dZ1%)uDT@^z41xrmy#etJr+tiW!z|B5zffsoZ6m;Q5 ze}G*GuM%_7Rui_-ws#;gw707QFTCusU{}@iJIA-C(|Us#@5lLg&+qv?&+|KHKfa%% z5Y3W{rpS-GpaAZE@=_T6E^_0oiR#I@_iK^QSqkD8k?$VNn8eIEnn6!JHPdN2Nj|I- zM%#rauOTph68D?Jx|(;#(WtRG`d z)JpepDW;lf0^^L{4J};YKa4hK*h?eeb4;q@K_2%oGFXw73-fys)rCCgkTL7Uhz9Ys z9bb0J)x2~=auSqtSXGWSFYhP7SRZ;GNQ_5w$C=+UE=UF(M!G2IT8{Z)p1@_{QIZ`5 z{tjV;vl|9NRwMww3UH&ms@%aCj*e_9!3Z42yY-2LpoUD19xM5sG zhK=xxUGA24>{E^MY*LZK@?CN4-#fFIZ$GtwZ^mY>_pdn(Nk2|o%19~3{!=wnn{s^Q z`r`fQ85H7r6ZAA=%UDOzg{tOLHi%q?P~Sn+h!;;jt=L;uYh9t@N@kxoWES68$8h+L jYt6%|7M&kHWh?i7D?6`JGX(uyICJ)&1LnU4KAnC7A3ike diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/MSFT_WindowsOptionalFeature/ko-KR/MSFT_WindowsOptionalFeature.strings.psd1 deleted file mode 100644 index 6de0ed3d74319345382b2a00babe8005c5059aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 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 S(?gr;iu9(X^v2&;)!2Vc#C+ZW diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.Schema.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.Schema.psm1 deleted file mode 100644 index 7a6bdf0..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.Schema.psm1 +++ /dev/null @@ -1,45 +0,0 @@ -Import-Module "$PSScriptRoot\..\CompositeResourceHelper.psm1" - -Configuration WindowsFeatureSet -{ - [CmdletBinding(SupportsShouldProcess=$true)] - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [System.String[]] - $Name, - - [ValidateSet('Present','Absent')] - [System.String] - $Ensure, - - [ValidateNotNullOrEmpty()] - [System.String] - $Source, - - [System.Boolean] - $IncludeAllSubFeature, - - [ValidateNotNull()] - [System.Management.Automation.PSCredential] - $Credential, - - [ValidateNotNullOrEmpty()] - [System.String] - $LogPath - ) - - $psboundParams = $PSBoundParameters - $optionalParameters = @("Ensure","Source","IncludeAllSubFeature","Credential","LogPath") - $keyParamName = "Name" - $resourceName = "WindowsFeature" - - #build common parameters for all WindowsFeature resource nodes - [string] $commonParameters = BuildResourceCommonParameters -KeyParamName $keyParamName -OptionalParams $optionalParameters -PSBoundParams $psboundParams - - #build WindowsFeature resource string - [string] $resourceString = BuildResourceString -KeyParam $Name -KeyParamName $keyParamName -CommonParams $commonParameters -ResourceName $resourceName - - $configScript = [scriptblock]::Create($resourceString) - . $configScript -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/WindowsFeatureSet/WindowsFeatureSet.psd1 deleted file mode 100644 index add63778c2ed8dc07e7b73d74323ff0ee7184dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmc(jTW{M&5QXQtK>q^)Kg20&Ida?!3KWPC$BBU?4eT`StL_!5TXl(26#46E&$pvB zxgr(Ic7#HZL@sw{&)m+;^50Jf_O*Rw2bS3@n^?z|HngtpM%J{k4XmfTxh*u()ALz) zQk?g|e$%Y6R!(fCndh3{)cmF9cI`^vg*{mB5qEm7(Xqa>Fte+*nO2YOC;fkK$97_m z!|x-j+i77f>z~*^VI<1BvbN+5Y#K0*5*-|GE8uHt*54)cJw0=Mo5DWV>b6F}@2FO~ zTi733$L~Nh%9g1GJeOKK(X7;pKWqLj7OKfoZSBwvcCSgBxvuJK%SBz^1)I%<18Zga zE;XwaMzLUT1843h$5_O+Da(=8t!9rlcD=AO$z2MO+hn1gxF9@I24@m<_o-u~IKYX#3hfP3=T3 z!OaBp1eOtD@oYI$Mfk(f>_J?gu+>% z`tOJ5GhKV7bWT51Re5Qbfi>?IeZGDdP2R|o^f|CB9S^mL?uh;ahV1Gp_HUUT%4%rQ zwQn`=_fUhmYDl||D(>k$Fqe@uw&JMHo4l)l6R|#Zj2?}Cg)6!v_?T*puCcR&`Mi^f zKI;cYZAk((2_Bp&*55g`f88Y)OV}E zDsF>3j(3Z-xc_Z1pNIJ71V{$`Ke&q+Zi9U@m&!Q`+Yv8t8XV!L8n`;1etDX95XGl- zS9p|@BDV4Mc!SI?p8}7QGhsP$;%SBI6!C0oQJqugp^D@^F1TIau6+8#5u|c<-Tj@s2_rWHD@INvlWuQ=vaDTE(EWpf zbIX0akjmM0_m|q+tDQ%!Gb2?njcLxKZFN!Jg-{jJlS6#Jk*|ueS&YYgx9X_OpQmVw zJaTs==h79{&v&Ut0Xq*=!TnsDDMGp8wB_*$0{WkLAG?5}&Gwb)DYmm~WS(E?+2DnA z9V(YE#4o&o%k<{tQg=m$+U~c_)p2drPMmLh!onLsc%P1ek%2e>4)LBRcD8i1onXIW zo;erZ#5bJ%e_5Y4@e=QioSXRPZaWV8x>)%x6ycHOjuMv5^o|HCNBnsmPqp-SEdH*u QldOpES#ocDyza*S1FHaoeE1-Zj}c z1Qa=Y&Gb}Pch~gpub&mUF4v?YiM)`pbY&p}NpUrlmW-q?8LnnB$DIt%r}`uucSGJ| z)Ce=jvc$+&GQsFRu12shkS6B0aA$$Jshr|Bmm8}!-OA5!cZAbix8{fZ!6vwMt#e9li`{9--0hQ%|!lg{^d%Ha&S$bN#~ z0;Ae`myBj>xIH(9ImEhd%aGTkD*J1z9?K!@E`Z25nqwtiGkZScn1WF<-A7y*XJ$vH zcR~(57JBnc-iq0^b@vhX6nT)zUHsjVUHE=UxsqW_D)(_# z$L~I#Tjn{w8bC)3mKT5Ghcn{QhU*1j9-i37OV}D>ej=AgHUTEqP!HVDBi6sw09RlHy&7zeA@QwSGHg5G>?Uj+ zXq4(W%kx;p-3BsefTPF4dZUgo*QP?gy2!|w+e3ZsRlrq)=aVdDnxUPu_)x1@+lg#T%qN#qU@B%S*7!tTgP*0&I8{}$I59VRYL^T%POSgFo|R>> z$a1k3#ZmY9AIG^Ia%zC>a(@r?(aNSrW|7)%_qpxm-1BJAbXm~ z8dJ0-c$~_otuyKn^XIV3&LeO2@A*R|WZrkM-VlGb2M^!{t73s;PoGb<+F8A(*E`rT zp38|U;&$0*^UHYh8cedMp@Ooz;XcDoh`j~XFU6Vb)e_kOYxE+O+Zgu&`{zA9YXEr{ z=k-fq&Le4T#8F%~zGL97K=!#uu^(eE!ZUV0)LQPe^wo87R6grcT+DjV&@slFmQu&4 z{^V+;QL;Uc`vUcmtl9j~Hm&ybiSG3W88yYWme{J2T z7{5RHOmA9svYx%nnsPV`k+?3H(x%DJBaWpdtpYDZ-wN> z<}(@z6g>aNw->$t+PHh)w3dZu@bATyO69;?f}v3h@r zAa9FEpGI~}gKw?%+D~A)tCcucUbjUM+bO&HJ4BO;+)`C^n#fAJI0t!KWl^xRCkDQg zTqX*!owBPx*O;H*o_x|%ZM|hf^lI!`qhfF(m#*UggUZ4 zk|unm>iboSQBa-x*um|cH9>~*jBiqwpG3g^$6dQF;9pdFjP39YnblYPZg2!&2Z-D; z^o3vF5_}ao!Ig{k=8CRh%=&CMw`e84yJo<`uYb%Xb_~4JhXznXtmko^Ej!w-@)y>b zY2kT#!}t1EtG7)?i9L#G6OX*wjDvlh+xd>6Jg%$TjdC=>_aCzC@cVr{_R_we*muru PG{b#E@zMBk){XrJm+pf8 diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ko-KR/RunAsHelper.strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DSCResources/ko-KR/RunAsHelper.strings.psd1 deleted file mode 100644 index bb990a5d50f9006a5df42d24babc107502c133ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmZ`(OK1~O6g>+!3L*s;U3BrFg{Gh}Y5i2Opf=Vj)ka}cK)8RYK_j`LrI^SH{tc?V=KJ;5l~VDY zURtUy`EBevhOnKYR#BoQ$>{>|#IJGw#Hl?F^(>E=A+q{&!DrmE6k2r!<1ezpk54;a z0-Kehs&NXFRbWvoDeSW%t07C{d)9ohR46MP$}1c(4(DfxIA_l16ke5|t%n%VR@%*F zEhlPhYsL&)-}P<1!|<~jC$~a}5$3*ZzIRKs8n)d|P(e}5aV*2WN#Y*sNOeQsr>!fCrBOL><*J2+m1 z#@_3v=CK-<*T-f`OCNq*tFHXpgL_`cck#A - - - - 2.0.0.0 - DscDebug - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/DSCFileDownloadManager.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/DSCFileDownloadManager.psd1 deleted file mode 100644 index 190ea65bdc664303e6c65511ae9e5b0861b473ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4684 zcmchbTTc@~6vxlAiQl2Y2f;`qh^P-HHX>>QgaD$ir8gVt#Zs)s_|?__Zw|}sbQfs3 zn1(XCKY!I^R`$ZqM{v)BA;}EQ=O$wKZC^RgD?d zwf01_Wj*UbS8ZF@d&OSrxvu@GzG^}T2Dj>E`TyVwF{lw9UTAy^WP zRcU#}o@!J?Rn^y;?0&3w#Dd?BgaJ<(8G32TpHiD_g!LGKnJ-7{ppAC$uZCpt^}09_ zS7?1G+5=H{edYHUl_5$sdk|K zOpZ;BJU?s%x_!+C+5wGiy~!(`z%A7aIwqoeqS(`3w3mZhUScZC8{%%4EPB zI$&1HL~N&6b`;inouyA$~pmye=MxI3qSa*6<|i6;bNhc2P0B zWqTpd%^w$jb`~kps_r?NzM>I&19}E>965vtU6jUblW9!52xZfd+1W*?M! z8Iz;u$6iEKyAV%#oW!nz%tO{C|Iy{pBQTVkU-xKA0=F9h9$bg)$rTwL(+p0+#Dj6LX z)rY!vnY>w^_b%zSF_)t$N1k@LS;q?cMb+b>JQ~Q%*)5CJv@gi7($8W^ZdK^T&$~b7xfgwd zNT=dtT=To(nZ?RNX+K-m>r~YR?yFK%Rl~fio9^k-j;<;h=^huRGRbDBKCznxjccxD zKhAR`en94<`y=wQyJOTG5*BHpiMI(I&)bitI`2243_fb|O%SAXX61e;zaWd(LpIHF zDX}=e4vMs9MZui~4CM8j=pdytEBCEnQzG8|pQ=aQ%lkj5xM4Qbd3pE3&7u6i3aMx0 z{XKHZygsdMaXm$n&qUWlkwr@6P>z5;q^oN0H`j_hlTlr=j-?&ff&VAO=UFYv>*{8? TB1N!q&flXa-p+oXcLo0d_caan diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/Microsoft.PowerShell.DSC.FileDownloadManager.dll b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/Microsoft.PowerShell.DSC.FileDownloadManager.dll deleted file mode 100644 index cb124fd14a99ac423fadc06765eb6e3619d77555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 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 KfB)ZE;Qs<4V65f< diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/ko/Microsoft.PowerShell.DSC.FileDownloadManager.Resources.dll b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/DownloadManager/DSCFileDownloadManager/ko/Microsoft.PowerShell.DSC.FileDownloadManager.Resources.dll deleted file mode 100644 index 449004ade8b19f631d51d519848601d2a51c604a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 zcmeHL4Nz3q6+Vj?|BC-fY#Wnn6$?UE5b-Alp&Nz$=#+SEzY+TlHtj!nkaX=}gpb{BRR&`jIu zj5E2*efQq;&d+zxJ$LsU^1f3`1BfUV{njm_4vgF~_2=y$Uc4Uu(23#HKIGjA9fl?E zPFP-IcZqe1T&!5igw^77%5G643B}_ScBe2cGmA3WCK==6hE58q&Yw@T#4vysS=6UO z)~-^_gkgqZP!7uA0CnlZ7zKJJIzI%4m;i3fbo@M$7aeqio3O9U%|s*hzn(F;WL~tt zB@>x>l1a3Zoe zh&r}ROzuI)mcm;m&>I!WA%juJT8Ou->pt|bmPwQyw$!I7>{m3#7DEH6b_!7mWQXWf zqI^O0Gb~1c?hVpzH=G3TrFTAi(*UNI&>iOWF1J)>ERbBXN3lw-?pc9ku}Mm@D05k5 z#bGZ>7AqvhWtW{9(~T+oNftRChufn_8BWRLRxFNWk?$#T*sY7D^~>c_$(d0!bEYNT znm!|ScG`3)W!CJ8y^VRCZhM&&vTl~#?3XdY9pq=3`0wxQ7jKM9m-pPf^j^#7&rba5 z5qHsvY1VfxKJ&)OE1l1$s&9Y&-1XIiet+}Q*qj)Da_;b}{_iFn^d?MAls`33>nK=# zIaw~9HtRz<;|D*loB{oVaiQwj0caPn-ie+CS^;Rk0xb#sd!Sth?Gk7QG42MpUa5+RB0M~zf=0GsY<#`Zr!RetGiMIPRM4~QIK0wM;th=4>UA_*RZz0F0 z1#cv}1hMQ$&zbcTQQ&f^j|&t!t;iTrp(e^v;c7zu?K$j7@dxk&X2{%-QYpG>YP9B4 zLT#*7tLubXSEu^7botuU*IKoPTA|hN)_fgW_1>;}ztE~0h1T%AR((v}TBUB?Ycx#l z(V#W^1Zdihc6E1?`f^j>0_ob3_O6Ysny)ov7#bj&puT!4QE1JlSxs*{Ns)FmzgOG& zYFB-uw$Cfn11Gz-SA~HpV3iHEny*Q89`S0Mwy3pDqT8<4+%7bKQ|HlRUG-t)&ZDPb z{*-pSF{oCnuMX3h6(;W!ogHo3Ua!`43R@NW2H=<`f7gx{&G$O*fbBll8VPIGhSU(O z06?MEcq1@`BsXn|lzi;J-O&Efc_r##+Y>t5yon-!N2o`S0jpZus5OLpF&V58;eZno zTHBj_AJ8hD`#_8Oa+U7jhE{b~t5AuS zsN}_)Kl$}F|NTqeIKJ56d1Afk+Mv3+F?+`Ra^pj3nODA1_SS3hXP!&nyrJUk&fi&v zzjSqE#kR}VAMY)>@z?h=MrD-OJbF?Obv;@!Km`d~2MoiL%X$vJHga zJv7c`%Q+cLOG!(e&6I)o!Y6#;6HR<3kW2lR=VrHJcNTLtLah+xl40WGW@^WrQ{{=d zk1sS~Jd5>SUS~VxB8=Sd%QO;c78%&&&G;hsU#^f8bBW||7)|CJ;{v-wGRYNAhitLsS)7() zNkKLrOqZ!t?nhE`*%irVc3a$1j_h1(FZL)FH_~Tgv@Y0S6G0~#OXV=_{~0Kw&B5nD z0|Y-wB>kdXX;X4fYkw*H;eG4okk?O>P?C9x>hSs=_?XuP=B!k%)7W*#{!x1^=Go#G z9;|re#gDekIzRq{m=n@*F~0E0x!ceFNP4iU>8*KV?^Tb@YaNw(c-Z@CZ+}`iq4?p3 zah<6xhfl}(2ThItP2~ys!iax9x$T21>7Oi_T{Ayt(4YS>$2WOw#^DQJY~Lg|oWGHq z|Hp>awvWf{n*Y(~rBjkd=N>vEC4F&b@W7|`lL*#5fJSpewIwg2TBttiA+O1i6_dk} zXR$j;uU#Z5#>H)t4rIBWTRM@jIrMDLj<-(z{pi@X*g{-f126?reJ7H*-kKiOc~WRPrP4Iw zu?SE6zXD$p2IO>syI%U?Mk!C4o#M(oM} zk4oTYMC{dd@Fy2w#jwi%Bk4^OlmK0c@Jeso{rTDm?kwG|2-EHYHGq)OmIH?km{GIq z{#q8~v%D?j6I0Q(ij|FsAH4eSPwiU0rr diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Enable-DscDebug.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Enable-DscDebug.cdxml deleted file mode 100644 index a7e39c7..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Enable-DscDebug.cdxml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - 2.0.0.0 - DscDebug - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DSCLocalConfigurationManager.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DSCLocalConfigurationManager.cdxml deleted file mode 100644 index edd6104..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DSCLocalConfigurationManager.cdxml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - 2.0.0.0 - DscLocalConfigurationManager - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfiguration.cdxml deleted file mode 100644 index 871f9d4..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfiguration.cdxml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - 2.0.0.0 - DscConfiguration - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfigurationStatus.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfigurationStatus.cdxml deleted file mode 100644 index bf48b36..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Get-DscConfigurationStatus.cdxml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - 2.0.0.0 - DscConfigurationStatus - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.format.ps1xml deleted file mode 100644 index 9827883..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.format.ps1xml +++ /dev/null @@ -1,368 +0,0 @@ - - - - - DSCResourceSyntax - - Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo - - - - - 15 - - - 25 - - - 30 - - - 10 - - - 50 - - - - - - - ImplementedAs - - - Name - - - ModuleName - - - Version - - - Properties - - - - - - - - TestDscConfiguration - - Microsoft.Management.Infrastructure.CimMethodResult#MSFT_DSCLocalConfigurationManager#TestConfiguration - - - - - - 15 - - - - 30 - - - - 30 - - - - 15 - - - - - - - PSComputerName - - - ResourcesInDesiredState - - - ResourcesNotInDesiredState - - - InDesiredState - - - - - - - - GetMetaConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_DSCMetaConfiguration - - - - - - - ActionAfterReboot - - - AgentId - - - AllowModuleOverWrite - - - CertificateID - - - ConfigurationDownloadManagers - - - ConfigurationID - - - ConfigurationMode - - - ConfigurationModeFrequencyMins - - - Credential - - - DebugMode - - - DownloadManagerCustomData - - - DownloadManagerName - - - LCMCompatibleVersions - - - LCMState - - - LCMStateDetail - - - LCMVersion - - - StatusRetentionTimeInDays - - - SignatureValidationPolicy - - - SignatureValidations - - - MaximumDownloadSizeMB - - - PartialConfigurations - - - RebootNodeIfNeeded - - - RefreshFrequencyMins - - - RefreshMode - - - ReportManagers - - - ResourceModuleManagers - - - PSComputerName - - - - - - - - GetDscConfigurationStatus - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_DSCConfigurationStatus - - - - - - 10 - - - - 25 - - - - 15 - - - - 5 - - - - 20 - - - - 30 - - - - - - - Status - - - StartDate - - - Type - - - Mode - - - RebootRequested - - - NumberOfResources - - - - - - - - GetDscConfigurationStatus - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_DSCConfigurationStatus - - - - - - - JobID - - - HostName - - - Error - - - Locale - - - IPV4Addresses - - - IPV6Addresses - - - MACAddresses - - - LCMVersion - - - Mode - - - NumberOfResources - - - MetaData - - - MetaConfiguration - - - Type - - - Status - - - StartDate - - - DurationInSeconds - - - RebootRequested - - - ResourcesInDesiredState - - - ResourcesNotInDesiredState - - - PSComputerName - - - - - - - - InvokeDscResourceTest - - Microsoft.Management.Infrastructure.CimMethodResult#MSFT_DSCLocalConfigurationManager#ResourceTest - - - - - 15 - - - - - - - - InDesiredState - - - - - - - - InvokeDscResourceSet - - Microsoft.Management.Infrastructure.CimMethodResult#MSFT_DSCLocalConfigurationManager#ResourceSet - - - - - 15 - - - - - - - - RebootRequired - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psd1 deleted file mode 100644 index 04295636e7c880bf62fa6e340ff7e216602fff8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5084 zcmchbT~8B16o${WiT|O2i&Y~T37{`_9Hr}o5_En|n)v5NJrX;uDfS;^Ygup0lx*5gTy_g(iU zJuk8X&##%)wW59H-sIY2oVREoJ3+`Z^U`jZ*|0iud$w&$_RC>6tjzNcSRIgrr`cWR z>$k*{2BWrRd9&*2bxV!px-`QO?%+ugYkX8PY~?E6mEdcboQ_RqI^k z6v8gv@8K8kXRpN}TFvGe?`>%+&$aNJB6wp*+*|07=p8EY|3^-?9HaR+{L*motq}W| ztBOVEu%N+6v6ruQ>=_Xsw=T;wd7=d8w64myM{Ezc*N|F5LXUeNKlk_*kCyDEV@d|O zvtM_ke@4qTu~(MF;QHLi4)|SlcWF`pxdV3_%oU4cw0J(`>k-eSr?`~nZrXa~ViEb8 znfR;78fDK2N4X~}(>Zm?ik4&h>~=?FL>0*^1B=8u*>RWrGFpEJp$Xf=5k7%XM(^g( zXX9AuSaf@Vm-%5%)fxJ2$ zFC0VhYk{I(a6itTV^%*^9YT4t2mfO@s_HaCR!*Lib@c~$?LFDG2)PNfn@Cq}^~~?M z8c{~?*uL1md@L}tY#02hqUN1ev&_j7^B8`rtBxw$2|eo4;hYc!Uj;qxUyu@1H!zWKDcVjK@Gay+?DuAJYCP>3Pu%(MkJzpUAd}U$Ud} z_D+&LxfaY*VUix2?itfFU(z#k_u$*|=kFL{R{40Ts&!%V{q-gc<&@}G97h+2p?$`6 z$^z}^mFqFAY0cGDCdK?Vx5Iof+IvjrQMzM=Ac!sN>z;hicBb9yfclX+j~OV^-0 z7HglP{p0ldQ*?8Zj9Pp?N9>@rWA5^spgvv=jOZgWZ2N-P+!7^BX8=3>?0*YCI{u_>|_NY@vo{&a$%HTsgAv_jvL5pT8E zsj<_UH!C6-6uPn=yi&XkMeWmHLf6*uXgQ!m$ity4FNt}mzS8v})_U9+R*bm#5jHiE z>Q5FroEIH4PR?C)-qqu6Y;SFqs}9SvXmR^|N8da;zgdNK*N&%cvSHQU4aYhm*yij= QXHT2#rgJG~{~U7sFXpka-T(jq diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psm1 deleted file mode 100644 index 30ac7a0..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.psm1 +++ /dev/null @@ -1,4822 +0,0 @@ -########################################################### -# -# 'PSDesiredStateConfiguration' logic module -# -########################################################### -data LocalizedData -{ - # culture="en-US" - ConvertFrom-StringData -StringData @' - CheckSumFileExists = File '{0}' already exists. Please specify -Force parameter to overwrite existing checksum files. - CreateChecksumFile = Create checksum file '{0}' - OverwriteChecksumFile = Overwrite checksum file '{0}' - OutpathConflict = (ERROR) Cannot create directory '{0}'. A file exists with the same name. - InvalidConfigPath = (ERROR) Invalid configuration path '{0}' specified. - InvalidOutpath = (ERROR) Invalid OutPath '{0}' specified. - InvalidConfigurationName = Invalid Configuration Name '{0}' is specified. Standard names may only contain letters (a-z, A-Z), numbers (0-9), period (.), hyphen (-) and underscore (_). The name may not be null or empty, and should start with a letter. - NoValidConfigFileFound = No valid config files (mof,zip) were found. - InputFileNotExist=File {0} doesn't exist. - FileReadError=Error Reading file {0}. - MatchingFileNotFound=No matching file found. - CertificateFileReadError=Error Reading certificate file {0}. - CertificateStoreReadError=Error Reading certificate store for {0}. - CannotCreateOutputPath=Invalid Configuration name and output path combination :{0}. Please make sure output parameter is a valid path segment. - ConflictingDuplicateResource=A conflict was detected between resources '{0}' and '{1}' in node '{2}'. Resources have identical key properties but there are differences in the following non-key properties: '{3}'. Values '{4}' don't match values '{5}'. Please update these property values so that they are identical in both cases. - ConfiguratonDataNeedAllNodes=ConfigurationData parameter need to have property AllNodes. - ConfiguratonDataAllNodesNeedHashtable=ConfigurationData parameter property AllNodes needs to be a collection. - AllNodeNeedToBeHashtable=all elements of AllNodes need to be hashtable and has a property 'NodeName'. - DuplicatedNodeInConfigurationData=There are duplicated NodeNames '{0}' in the configurationData passed in. - EncryptedToPlaintextNotAllowed=Converting and storing encrypted passwords as plain text is not recommended. For more information on securing credentials in MOF file, please refer to MSDN blog: https://go.microsoft.com/fwlink/?LinkId=393729 - DomainCredentialNotAllowed=It is not recommended to use domain credential for node '{0}'. In order to suppress the warning, you can add a property named 'PSDscAllowDomainUser' with a value of $true to your DSC configuration data for node '{0}'. - NestedNodeNotAllowed=Defining node '{0}' inside the current node '{1}' is not allowed since node definitions cannot be nested. Please move the definition for node '{0}' to the top level of the configuration '{2}'. - FailToProcessNode=An exception was raised while processing Node '{0}': {1} - LocalHostNodeNotAllowed=Defining a 'localhost' node in the configuration '{0}' is not allowed since the configuration already contains one or more resource definitions that are not associated with any nodes. - InvalidMOFDefinition=Invalid MOF definition for node '{0}': {1} - RequiredResourceNotFound=Resource '{0}' required by '{1}' does not exist. Please ensure that the required resource exists and the name is properly formed. - ReferencedManagerNotFound=Download Manager '{0}' referenced by '{1}' does not exist. Please ensure that the referenced download manager exists and the name is properly formed. - ReferencedResourceSourceNotFound=Resource Repository '{0}' referenced by '{1}' does not exist. Please ensure that the referenced resource repository exists and the name is properly formed. - DependsOnLinkTooDeep=DependsOn link exceeded max depth limitation '{0}'. - DependsOnLoopDetected=Circular DependsOn exists '{0}'. Please make sure there are no circular reference. - FailToProcessConfiguration=Compilation errors occurred while processing configuration '{0}'. Please review the errors reported in error stream and modify your configuration code appropriately. - FailToProcessProperty={0} error processing property '{1}' OF TYPE '{2}': {3} - NodeNameIsRequired=Node processing is skipped since the node name is empty. - ConvertValueToPropertyFailed=Cannot convert '{0}' to type '{1}' for property '{2}' in resource '{3}'. - ResourceNotFound=The term '{0}' is not recognized as the name of a {1}. - GetDscResourceInputName=The Get-DscResource input '{0}' parameter value is '{1}'. - ResourceNotMatched=Skipping resource '{0}' as it does not match the requested name. - InitializingClassCache=Initializing class cache - LoadingDefaultCimKeywords=Loading default CIM keywords - GettingModuleList=Getting module list - CreatingResourceList=Creating resource list - CreatingResource=Creating resource '{0}'. - SchemaFileForResource=Schema file name for resource {0} - UnsupportedReservedKeyword=The '{0}' keyword is not supported in this version of the language. - UnsupportedReservedProperty=The '{0}' property is not supported in this version of the language. - MetaConfigurationHasMoreThanOneLocalConfigurationManager=The meta configuration for node '{0}' contain more than one definitions for LocalConfigurationManager which is not allowed. - MetaConfigurationSettingsMissing=The settings definition for node '{0}' is missing. A default empty settings definition is added for the node. - ConflictInExclusiveResources=The partial configuration '{0}' and '{1}' have coflicting exclusive resource declarations. - ReferencedModuleNotExist=The referenced module '{0}' does not exist on the machine. Please use Get-DscResource to find out what exists on the machine. - ReferencedResourceNotExist=The referenced resource '{0}' does not exist on the machine. Please use Get-DscResource to find out what exists on the machine. - ReferencedModuleResourceNotExist=The referenced module\resource '{0}' does not exist on the machine. Please use Get-DscResource to find out what exists on the machine. - DuplicatedResourceInModules=The referenced resource '{0}' exists in module {1} and module {2} on the machine. Please make sure it exists in only one module. - CannotConvertStringToBool=Cannot convert value "System.String" to type "System.Boolean". Boolean parameters accept only Boolean values and numbers, such as $True, $False, 1 or 0. - NoModulesPresent=There are no modules present in the system with the given module specification. - ImportDscResourceWarningForInbuiltResource=The configuration '{0}' is loading one or more built-in resources without explicitly importing associated modules. Add Import-DscResource -ModuleName 'PSDesiredStateConfiguration' to your configuration to avoid this message. - PasswordTooLong=An error occurred during encryption of a password in node '{0}'. Most likely the password entered is too long to be encrypted using the selected certificate. Please either use a shorter password or select a certificate with a larger key. - HashtableElementTypeNotAllowed=Value of type '{0}' is not allowed in hashtable. Supported types : [String], [Char], [Int64], [UInt64], [Double], [Bool] ,[DateTime] and [ScriptBlock]. - PullModeWithoutDownloadManager=Meta configuration is set to pull mode which requires a DownloadManager to be specified. - PullModeWithoutConfigurationRepository=Meta configuration is set to pull mode which requires a ConfigurationRepository to be specified. - DownloadManagerWithoutPullMode=A DownloadManager is specified without setting the refresh mode into PULL. - ConfigurationRepositoryWithoutPullMode=A ConfigurationRepository is specified without setting the refresh mode into PULL. - ReferencedPolicyNotDefined=The referenced SignatureValidationPolicy '{0}' is not defined. Please define a SignatureValidation block with the same name. - IncorrectSignatureValidationPolicyFormat =The value provided for SignatureValidationPolicy has incorrect format. Please provide its value in the form of '[SignatureValidation]'. -'@ -} -Set-StrictMode -Off - -# In case localized resource is not available we revert back to English as defined in LocalizedData section so ignore the error instead of showing it to user. -Import-LocalizedData -BindingVariable LocalizedData -FileName PSDesiredStateConfiguration.Resource.psd1 -ErrorAction SilentlyContinue - -$script:V1MetaConfigPropertyList = @('ConfigurationModeFrequencyMins', 'RebootNodeIfNeeded', 'ConfigurationMode', 'ActionAfterReboot', 'RefreshMode', 'CertificateID', 'ConfigurationID', 'DownloadManagerName', 'DownloadManagerCustomData', 'RefreshFrequencyMins', 'AllowModuleOverwrite', 'DebugMode', 'Credential') -$script:DirectAccessMetaConfigPropertyList = @('AllowModuleOverWrite', 'CertificateID', 'ConfigurationDownloadManagers', 'ResourceModuleManagers', 'DebugMode', 'RebootNodeIfNeeded', 'RefreshMode', 'ConfigurationAgent') - -################################################################# -# Code to determin what version related info is needed -# and fixup the configuration document is it is already generated -################################################################# -function Generate-VersionInfo -{ - param( - [Parameter(Mandatory)] - $KeywordData, - [Parameter(Mandatory)] - [Hashtable] - $Value - ) - - $SystemProperties = @('ResourceID', 'SourceInfo', 'ModuleName', 'ModuleVersion') - $HasAdditionalProperty = $false - foreach ($key in $KeywordData.Keys) - { - if (($Value.Contains($key)) -and ($script:V1MetaConfigPropertyList -notcontains $key) -and ($SystemProperties -notcontains $key)) - { - $HasAdditionalProperty = $true - break - } - } - - if($HasAdditionalProperty) - { - Set-PSMetaConfigVersionInfoV2 - } - else - { - $script:PSMetaConfigDocumentInstVersionInfo['MinimumCompatibleVersion'] = ($script:PSMetaConfigDocumentInstVersionInfo['MinimumCompatibleVersion'], "1.0.0" | Measure-Object -Maximum).Maximum - } - - $script:PSMetaConfigDocumentInstVersionInfo['CompatibleVersionAdditionalProperties'] = @('MSFT_DSCMetaConfiguration:StatusRetentionTimeInDays') - $script:PSMetaConfigurationProcessed = $true -} - -# indicate whether meta configuration is processed before document instance -function Set-PSMetaConfigDocInsProcessedBeforeMeta -{ - $Script:PSMetaConfigDocInsProcessedBeforeMeta = $true -} - -function Get-PSMetaConfigurationProcessed -{ - return $script:PSMetaConfigurationProcessed -} - -function Get-PSMetaConfigDocumentInstVersionInfo -{ - return $script:PSMetaConfigDocumentInstVersionInfo -} - -function Set-PSMetaConfigVersionInfoV2 -{ - $script:PSMetaConfigDocumentInstVersionInfo['MinimumCompatibleVersion'] = '2.0.0' - if($Script:PSMetaConfigDocInsProcessedBeforeMeta) #fixup configuration document instance version info - { - [string]$data = Get-MofInstanceText '$OMI_ConfigurationDocument1ref' - $Script:NoNameNodeInstanceAliases['$OMI_ConfigurationDocument1ref'] = $data -replace 'MinimumCompatibleVersion = "1.0.0"', 'MinimumCompatibleVersion = "2.0.0"' - Set-PSDefaultConfigurationDocument $Script:NoNameNodeInstanceAliases['$OMI_ConfigurationDocument1ref'] - } -} - -function Get-CompatibleVersionAddtionaPropertiesStr -{ - '{' - if($script:PSMetaConfigDocumentInstVersionInfo['CompatibleVersionAdditionalProperties']) - { - $len = @($script:PSMetaConfigDocumentInstVersionInfo['CompatibleVersionAdditionalProperties']).Length - foreach ($e in @($script:PSMetaConfigDocumentInstVersionInfo['CompatibleVersionAdditionalProperties'])) - { - "`"$e`"" + $(if (--$len -gt 0) - { - ', ' - } - else - { - '' - } - ) - } - } - '}' -} - -########################################################### -# The MOF generation code -########################################################### - -# -# This scriptblock takes a type name and a list of properties and produces -# the MOF source text to define an instance of that type -# -function ConvertTo-MOFInstance -{ - param ( - [Parameter(Mandatory)] - [string] - $Type, - [Parameter(Mandatory)] - [AllowNull()] - [hashtable] - $Properties - ) - - - # remove ModuleVersion, this will be handled during final validation. - if($properties.ContainsKey('ModuleName') -and $properties['ModuleName'] -ieq 'PsDesiredStateConfiguration') - { - $script:PsDscModuleVersion = $properties['ModuleVersion'] - $properties.Remove('ModuleVersion') - } - if($properties.ContainsKey('PsDscRunAsCredential')) - { - $script:PsDscCompatibleVersion = "2.0.0" - } - # Look up the property definitions for this keyword. - $PropertyTypes = [System.Management.Automation.Language.DynamicKeyword]::GetKeyword($Type).Properties - - # and the CIM type name to use since the keyword might be an alias. - $ResourceName = [System.Management.Automation.Language.DynamicKeyword]::GetKeyword($Type).ResourceName - - if($script:IsMetaConfig -and ($ResourceName -eq 'MSFT_DSCMetaConfigurationV2')) - { - Generate-VersionInfo $PropertyTypes $Properties - } - - # - # Function to convert .NET datetime object to MOF datetime string format - # We're not using [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime() - # because it has known bugs which are not going to be fixed. - # - function ConvertTo-MofDateTimeString ([datetime] $d) - { - $utcOffset = ($d -$d.ToUniversalTime()).TotalMinutes - $utcOffsetString = if ($utcOffset -ge 0) - { - '+' - } - else - { - '-' - } - $utcOffsetString += ([System.Math]::Abs(($utcOffset)).ToString().PadLeft(3,'0')) - '{0}{1}' -f - $d.ToString('yyyyMMddHHmmss.ffffff'), - $utcOffsetString - } - - # - # Utility routine to find if username specified is - # a domain user. - # - - function IsDomainUser() - { - param( - [Parameter(Mandatory)] - [string] - $UserName - ) - # if username contains '\' example: domain\username or '@' example: username@mydomain.com - # it may not be a local user. - if( -not( $UserName.Contains('\') -or $UserName.Contains('@'))) - { - # it is a local user - return $false - } - elseif( $UserName.Contains('@')) - { - return $true - } - else - { - # In case of '\', domain name can be local machine. - $result = $UserName.Split('\') - if( $result.Count -ge 2) - { - $domain = $result[0] - $localMachineNames = @("localhost","127.0.0.1","::1",$env:COMPUTERNAME) - $isDomainUser = $true - if( $localMachineNames -icontains $domain) - { - $isDomainUser = $false - } - return $isDomainUser - } - } - $true - } - - # - # Utility routine to render a property - # as a string in MOF syntax. - # - function stringify ($Value, $asArray = $false, $targetType = [string]) - { - $result = if ($Value -is [array] -or $asArray) - { - '{' - $len = @($Value).Length - foreach ($e in $Value) - { - ' ' + (stringify $e -targetType $targetType) + - $(if (--$len -gt 0) - { - ',' - } - else - { - '' - } - ) - } - '}' - } - elseif ($Value -is [PSCredential] ) - { - # If the input object is a PSCredential, turn it into an MSFT_Credential with an encrypted password. - $clearText = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::GetStringFromSecureString($Value.Password) - $newValue = @{ - UserName = $Value.UserName - Password = $clearText - } - # Recurse to build the object. - ConvertTo-MOFInstance MSFT_Credential $newValue - } - elseif ($Value -is [System.Collections.Hashtable]) - { - # Collect the individual strings - $elementsAsStrings = foreach ($p in $Value.GetEnumerator()) - { - if($p.Value -isnot [string] -and - $p.Value -isnot [char] -and - $p.Value -isnot [int64] -and - $p.Value -isnot [uint64] -and - $p.Value -isnot [double] -and - $p.Value -isnot [bool] -and - $p.Value -isnot [datetime] -and - $p.Value -isnot [ScriptBlock]) - { - $errorMessage = $LocalizedData.HashtableElementTypeNotAllowed -f $($p.Value.GetType()) - ThrowError -ExceptionName 'System.ArgumentException' -ExceptionMessage $errorMessage -ExceptionObject $Value -ErrorId 'NestedHashtableNotAllowed' -ErrorCategory InvalidArgument - } - - ConvertTo-MOFInstance MSFT_KeyValuePair @{ - Key = $p.Key - Value = $p.Value - } - } - # Produce a single formatted string. - ' ' + ($elementsAsStrings -join ",`n ") + "`n" - } - elseif ($Value -is [ScriptBlock] ) - { - # Find all $using: variables used in the script and replace them with normal variables - $scriptText = "$Value" - # Need to create a new scriptblock so the extent offsets are correct - $scriptAst = [scriptblock]::Create($scriptText).Ast - # get the $using: variable asts into an array - $variables = $scriptAst.FindAll({ - param ($ast) - $ast.GetType().FullName -match 'VariableExpressionAst' -and - $ast.Extent.Text -match '^\$using:' - } - , $true).ToArray() - - # do the substitutions in reverse order - [Array]::Reverse($variables) - $variables | ForEach-Object -Process { - $start = $_.Extent.StartOffset - $length = $_.Extent.EndOffset - $start - $newName = '$' + $_.VariablePath.UserPath - $scriptText = $scriptText.Remove($start, $length).Insert($start, $newName) - } - - $completeScript = '' - # generate assignement statements to set the variable values on the other side - # using serialized values passed from the local environment - $varNames = @($variables).VariablePath.UserPath | Sort-Object -Unique - foreach ($v in $varNames) - { - # If the ScriptBlock was defined in a module, then use the module for lookups - if ($Value.Module) - { - $var = $Value.Module.SessionState.PSVariable.Get($v) - } - else - { - # Otherwise look up in the callers context - $var = $ExecutionContext.SessionState.Module.GetVariableFromCallersModule($v) - } - - if ($var) - { - $varValue = $var.Value - # Skip null values but preserve empty arrays and strings for type propigation - if ($varValue -ne $null) - { - # Pass strings quoted; amn explicit type check is needed because -is recognizes too many things as strings - if ($varValue -is [string]) - { - $completeScript += "`$$v ='" + ($varValue -replace "'", "''") + "'`n" - } - else - { - # Serialize everything else - $serializedValue = [System.Management.Automation.PSSerializer]::Serialize($varValue) -replace "'", "''" - $completeScript += "`$$v = [System.Management.Automation.PSSerializer]::Deserialize('$serializedValue')`n" - } - } - } - } - - # Merge in the actual scriptblock body - $completeScript += $scriptText - - # Quote the string so it's suitable to embed in the MOF file... - '"' + ($completeScript -replace '\\', '\\' -replace "[`r]*`n", '\n' -replace '"', '\"') + '"' - } - elseif ($targetType -eq [datetime]) - { - # If the target is a datetime, convert the argument to a datetime and then render that - # as a DMTF datetime... - '"' + (ConvertTo-MofDateTimeString $Value) + '"' - } - elseif ($targetType -eq [double]) - { - # MOF syntax requires reals to always have a decimal point so add - # so add one if the string representation does contain one. - [string] $dblAsString = [double] $Value - if ( -not $dblAsString.Contains('.') ) - { - $dblAsString += '.0' - } - $dblAsString - } - elseif ($targetType -eq [char]) - { - # A char16 is encode as a single quoted character - "'$Value'" - } - elseif ($targetType -eq [int64]) - { - [int64] $Value - } - elseif ($targetType -eq [uint64]) - { - [uint64] $Value - } - elseif ($targetType -eq [bool]) - { - if($Value -is [string]) - { - $errorMessage = $LocalizedData.CannotConvertStringToBool - ThrowError -ExceptionName 'System.ArgumentException' -ExceptionMessage $errorMessage -ExceptionObject $Value -ErrorId 'CannotConvertStringToBool' -ErrorCategory InvalidArgument - } - else - { - [bool]$Value - } - } - elseif ($targetType -ne [string]) - { - # Cast the value to the target type... - $Value -as $targetType - } - elseif ($Value -is [string] -and -not $InstanceAliases[$Value] ) - { - '"' + ($Value -replace '\\', '\\' -replace "`r?`n", '\n' -replace '"', '\"') + '"' - } - elseif ($Value -eq $null) - { - 'NULL' - } - elseif (($targetType -eq [string]) -and ($Value -isnot [string])) - { - # Cast value to string if it is not already a string, this is for covering cases like when a user assign an integer while the - # CIM property type is string - '"' + ($Value -replace '\\', '\\' -replace "`r?`n", '\n' -replace '"', '\"') + '"' - } - else - { - $Value - } - - $result -join "`n" - } - - Write-Debug -Message " BEGIN MOF GENERATION FOR $Type" - - # Generate the MOF instance alias to use for the current node - if ( (Get-PSCurrentConfigurationNode) ) - { - if($Script:NodeTypeRefCount[ (Get-PSCurrentConfigurationNode) ] -eq $null) - { - $Script:NodeTypeRefCount[ (Get-PSCurrentConfigurationNode) ] = - New-Object -TypeName 'System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,int]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - $MofAliasString = '$' + $ResourceName + ++$Script:NodeTypeRefCount[ (Get-PSCurrentConfigurationNode) ][$ResourceName] + 'ref' - $InstanceAliases = $Script:NodeInstanceAliases[ (Get-PSCurrentConfigurationNode) ] - } - else # Generate the MOF instance alias to use for the default (unnamed) node. - { - $MofAliasString = '$' + $ResourceName + ++$Script:NoNameNodeTypeRefCount[$ResourceName] + 'ref' - $InstanceAliases = $Script:NoNameNodeInstanceAliases - } - - # Start generating the MOF source text for this instance - $result = "instance of $ResourceName as $MofAliasString`n{`n" - - #special case psdesiredstateConfiguration module. Insert '0.0' as module if user hasn't explicilty asked for the version - if( $Properties.ContainsKey("ModuleName") -and ($Properties["ModuleName"] -ieq 'PsDesiredStateConfiguration')) - { - if(-not $Script:ExplicitlyImportedModules.ContainsKey('PsDesiredStateConfiguration')) - { - $script:ShowImportDscResourceWarning = $true - } - } - - # generate the property definitions - $oldOFS = $OFS - $OFS = ' ' - try - { - if ($Properties -and $Properties.Count) - { - $result += foreach ($p in $Properties.GetEnumerator()) - { - Write-Debug -Message " Generating property data for '$($p.Name)' = '$($p.Value)'" - - if ($p.Name -eq 'RefreshMode' -and $p.Value -eq 'PULL') - { - $script:MetaConfigSetToPull = $true - } - - if ($p.Name -eq 'DownloadManagerName') - { - $script:SpecifiedV1DownloadManagerName = $true - } - - $targetTypeName = $PropertyTypes[$p.Name].TypeConstraint - - # see if the target type is an array - $asArray = $p.Name -eq 'DependsOn' -or $targetTypeName -match 'Array' -or ((-not [string]::IsNullOrEmpty($targetTypeName)) -and $targetTypeName.EndsWith('[]')) - - # Convert the CIM typename to the appropriate .NET type to use - # to convert the input object into an appropriately encoded string - # using the PowerShell type conversion semantics. - switch -regex ($targetTypeName) - { - # unsigned integer types - '^sint[0-9]{1,2}' - { - $targetType = [int64] - break - } - # Single 16 bit character (note - this type is deprecated and removed in MOFv3 - '^char16' - { - $targetType = [char] - break - } - # signed integer types - '^uint[0-9]{0,2}' - { - $targetType = [uint64] - break - } - # reals - '^real32|^real64' - { - $targetType = [double] - break - } - # boolean - '^boolean' - { - $targetType = [bool] - } - # datetime - 'datetime' - { - $targetType = [datetime] - } - # everything else render directly as a string... - default - { - $targetType = [string] - } - } - - # - # If the scalar target types is a credential, then we need to encrypt the Password property value - # before generating the MOF text - # - if(($Type -match 'MSFT_Credential') -and $p.Name -match 'Password') - { - # For MSFT_Credential we'll have a password that may need to be encrypted depending - # on the availability of a key. This may need to change to the base class of MSFT_WindowCredential - # if we're using the class to refer to non-Windows machines where a Domain may be irrelevant. - - $p.Name + ' = ' + (stringify -value (Get-EncryptedPassword $p.Value) -asArray $asArray -targetType $targetType ) + ";`n" - } - else - { - #embeded instances cannot be null - if($p.Value -eq $null -and $PropertyTypes[$p.Name].TypeConstraint -eq 'Instance') - { - $errorMessage = $LocalizedData.ConvertValueToPropertyFailed -f @('$null', $Type, $p.Name, $ResourceName) - $errorMessage += Get-PositionInfo $Properties['SourceInfo'] - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidArgument -ErrorId FailToProcessProperty - Update-ConfigurationErrorCount - } - if($p.Value -is [PSCredential]) - { - [bool] $PSDscAllowPlainTextPassword = $false - [bool] $PSDscAllowDomainUser = $false - - $key = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\DSC' - $reg = Get-ItemProperty -path $key -name "PSDscAllowPlainTextPassword" -ea SilentlyContinue - - if ($reg -ne $null -and $reg.PSDscAllowPlainTextPassword -ne $null) - { - $PSDscAllowPlainTextPassword = ((Get-ItemProperty -Path $key -Name PSDscAllowPlainTextPassword).PSDscAllowPlainTextPassword -eq "True") - } - - $reg = Get-ItemProperty -path $key -name "PSDscAllowDomainUser" -ea SilentlyContinue - if ($reg -ne $null -and $reg.PSDscAllowDomainUser -ne $null) - { - $PSDscAllowDomainUser = ((Get-ItemProperty -Path $key -Name PSDscAllowDomainUser).PSDscAllowDomainUser -eq "True") - } - [bool] $PSDscDomainUser = IsDomainUser -username $p.Value.UserName - - if($Node -and $selectedNodesData) - { - if($selectedNodesData -is [array]) - { - foreach($target in $selectedNodesData) - { - if($target['NodeName'] -and $target['NodeName'] -eq $Node) - { - $currentNode = $target - } - } - } - else - { - $currentNode = $selectedNodesData - } - } - # where user need to specify properties for resources not in a node, - # they can do it through localhost nodeName in $allNodes - elseif($allnodes -and $allnodes.AllNodes) - { - foreach($target in $allnodes.AllNodes) - { - if($target['NodeName'] -and $target['NodeName'] -eq 'localhost') - { - $currentNode = $target - } - } - } - - if($currentNode) - { - # PSDscAllowDomainUser set to true would indicate that we want to allow - # domain credential. It takes precedence over PSDscAllowPlainTextPassword behavior - if($currentNode['PSDscAllowDomainUser']) - { - $PSDscAllowDomainUser = $currentNode['PSDscAllowDomainUser'] - } - if($PSDscDomainUser -and (-not $PSDscAllowDomainUser)) - { - if($Script:NodeUsingDomainCred -eq $null) - { - $Script:NodeUsingDomainCred = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,bool]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - $Script:NodeUsingDomainCred[$currentNode['NodeName']] = $true - } - # PSDscAllowPlainTextPassword set to true would indicate that we want to allow the - # automatic conversion of the encrypted password to plaintext if a certificate or - # certificate id is not specified. - # if a certid or cert file is specified, it taks precedence over PSDscAllowPlainTextPassword - if($currentNode['PSDscAllowPlainTextPassword']) - { - $PSDscAllowPlainTextPassword = $currentNode['PSDscAllowPlainTextPassword'] - } - - $certificateid = $currentNode['CertificateID'] - - if ( -not $certificateid) - { - # CertificateFile is the public key file - $certificatefile = $currentNode['CertificateFile'] - - if (( -not $certificatefile) -and (-not $PSDscAllowPlainTextPassword)) - { - $errorMessage = $($LocalizedData.EncryptedToPlaintextNotAllowed) - ThrowError -ExceptionName 'System.InvalidOperationException' -ExceptionMessage $errorMessage -ExceptionObject $p -ErrorId 'InvalidPathSpecified' -ErrorCategory InvalidOperation - } - } - - if($currentNode['NodeName'] -and ($certificatefile -or $certificateid)) - { - $Script:NodesPasswordEncrypted[$currentNode['NodeName']] = $true - } - - $p.Name + ' = ' + (stringify -value $p.Value -asArray $asArray -targetType $targetType ) + ";`n" - } - else - { - $errorMessage = $($LocalizedData.EncryptedToPlaintextNotAllowed) - ThrowError -ExceptionName 'System.InvalidOperationException' -ExceptionMessage $errorMessage -ExceptionObject $p -ErrorId 'InvalidPathSpecified' -ErrorCategory InvalidOperation - } - } - else - { - if ($targetTypeName -match 'StringArray') - { - $p.Name + ' = ' + (stringify -value $p.Value -asArray $asArray -targetType $targetType ) + ";`n" - } - elseif ($targetTypeName -notmatch 'Array' -or $p.Value.Count) - { - $p.Name + ' = ' + (stringify -value $p.Value -asArray $asArray -targetType $targetType ) + ";`n" - } - } - } - } - } - else - { - if ($Type -notmatch 'OMI_ConfigurationDocument') - { - $result += "// This instance definition of $Type had no properties`n" - } - Write-Debug -Message " ENCOUNTERED INSTANCE OF TYPE '$Type' WITH NO PROPERTIES" - } - } - catch - { - $errorMessage = $_.Exception.Message + (Get-PositionInfo $Properties['SourceInfo']) - $errorMessage = $LocalizedData.FailToProcessProperty -f @($_.Exception.GetType().FullName, $p.Name, $Type, $errorMessage) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId FailToProcessProperty - Update-ConfigurationErrorCount - } - finally - { - $OFS = $oldOFS - } - - # - # Add extra information about Author, GenerationHost, GenerationDate and Name if they are not specified - # - if ($Type -match 'OMI_ConfigurationDocument' -and $Properties) - { - if (-not $Properties.ContainsKey('Author')) - { - $result += " Author = `"$([system.environment]::UserName)`";`n" - } - - if (-not $Properties.ContainsKey('GenerationDate')) - { - $result += " GenerationDate = `"$(Get-Date)`";`n" - } - - if (-not $Properties.ContainsKey('GenerationHost')) - { - $result += " GenerationHost = `"$([system.environment]::MachineName)`";`n" - } - - # todo: report error is configuration name does't match - if (-not $Properties.ContainsKey('Name')) - { - $result += " Name = `"$(Get-PSTopConfigurationName)`";`n" - } - } - - # - # Append the completed mof instance text to the overall document - # - $instanceText = "`n" + $result + "`n};`n" - - # - # Record and return the alias for that document - # - Write-Debug -Message " Added alias $MofAliasString to InstanceAliases array for node '$(Get-PSCurrentConfigurationNode)'" - - if ( Get-PSCurrentConfigurationNode ) - { - if($Script:NodeInstanceAliases[ (Get-PSCurrentConfigurationNode) ] -eq $null) - { - $Script:NodeInstanceAliases[ (Get-PSCurrentConfigurationNode) ] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeResourceIdAliases[ (Get-PSCurrentConfigurationNode) ] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - $Script:NodeInstanceAliases[ (Get-PSCurrentConfigurationNode) ][$MofAliasString] = $instanceText - - if($Properties.ContainsKey('ResourceID')) - { - $Script:NodeResourceIdAliases[ (Get-PSCurrentConfigurationNode) ][$Properties['ResourceID']] = $MofAliasString - } - } - else - { - $Script:NoNameNodeInstanceAliases[$MofAliasString] = $instanceText - - if($Properties.ContainsKey('ResourceID')) - { - $Script:NoNameNodeResourceIdAliases[$Properties['ResourceID']] = $MofAliasString - } - } - - # todo: we can check error for duplicated alias in a node and report it here - # because this can live acrose configurationelement calls - Write-Debug -Message " MOF GENERATION COMPLETED FOR $Type" - $MofAliasString -} - -# -# -# Returns the MOF text for the instance that -# corresponds to the aliasId -# -function Get-MofInstanceText -{ - param ( - [Parameter(Mandatory)] - [string] - $aliasId - ) - - if ( Get-PSCurrentConfigurationNode ) - { - $Script:NodeInstanceAliases[ (Get-PSCurrentConfigurationNode) ][$aliasId] - } - else - { - $Script:NoNameNodeInstanceAliases[$aliasId] - } -} - -# -# Get the position message based on the SourceMetadata -# -function Get-PositionInfo -{ - param( - [string] - $sourceMetadata - ) - - $positionMessage = '' - if ($sourceMetadata) - { - $positionMessage = "`nAt" - $infoItems = $sourceMetadata -split '::' - - # File name may be empty - if ($infoItems[0]) - { - $positionMessage += " $($infoItems[0]):$($infoItems[1])" - } - else - { - $positionMessage += " line:$($infoItems[1])" - } - - $positionMessage += " char:$($infoItems[2])" - $positionMessage += "`n+ $($infoItems[3])" - } - - $positionMessage -} - - -################################################################################### -# -# A function that implements the 'Node' keyword logic. The Node keyword accumulates -# the resource instances to define for a specific node or nodes. It's passed into the -# configuration statement using the ScriptBlock.InvokeWithContext() method -# -function Node -{ - [OutputType([void])] - param ( - [Parameter(Mandatory)] - $KeywordData, # Not used in this function.... - [string[]] - $Name, # the list of nodes to process in this call - [Parameter(Mandatory)] - [ScriptBlock] - $Value, # The scriptblock that generates the configuration in each node. - [Parameter(Mandatory)] - $sourceMetadata # Not used in this function - ) - - - if (-not $Name) - { - Write-Debug -Message 'The name parameter was empty, no nodes generated' - return - } - - Write-Debug -Message "*PROCESSING STARTED FOR NODE SET {$(@($Name) -join ',')} " - - # Save any global level resources and initialize for the resources defined for this node. - $Script:PSOuterConfigurationNodes.Push( (Get-PSCurrentConfigurationNode) ) - $OldNodeResources = $Script:NodeResources - $OldNodeKeys = $Script:NodeKeys - - try - { - $OuterNode = $Script:PSOuterConfigurationNodes.Peek() - if(( $OuterNode -eq [string]::Empty) -or - (($OuterNode -ne [string]::Empty) -and ($Name -contains $OuterNode))) - { - # - # Set up a map from node name to data - # - $nodeDataMap = @{} - - # - # Copy the AllNodes data into the map - # - - if($script:ConfigurationData) - { - $script:ConfigurationData.AllNodes | ForEach-Object -Process { - $nodeDataMap[$_.NodeName] = $_ - } - } - - # - # Create the SelectedNodes list for this Node statement - # - $selectedNodesData = foreach ($nn in $Name) - { - # If there is no data for this node, create a dummy node - # with at least the node name - if ( -not $nodeDataMap[$nn] ) - { - $nodeDataMap[$nn] = @{ - NodeName = $nn - } - } - $nodeDataMap[$nn] - } - - foreach ($Node in $Name) - { - if(($OuterNode -ne [string]::Empty) -and ($OuterNode -ne $Node)) - { - continue - } - - Set-PSCurrentConfigurationNode $Node - - if( $Script:NodesInThisConfiguration[$Node] ) - { - $Script:NodeResources = $Script:NodesInThisConfiguration[$Node] - } - else - { - $Script:NodesInThisConfiguration[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeResources = $Script:NodesInThisConfiguration[$Node] - } - - #this for tracking referenced configuration managers - if( $Script:NodesManagerInThisConfiguration[$Node] ) - { - $Script:NodeManager = $Script:NodesManagerInThisConfiguration[$Node] - } - else - { - $Script:NodesManagerInThisConfiguration[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeManager = $Script:NodesManagerInThisConfiguration[$Node] - } - - #this for tracking exclusive resources - if( $Script:NodesExclusiveResourcesInThisConfiguration[$Node] ) - { - $Script:NodeExclusiveResources = $Script:NodesExclusiveResourcesInThisConfiguration[$Node] - } - else - { - $Script:NodesExclusiveResourcesInThisConfiguration[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeExclusiveResources = $Script:NodesExclusiveResourcesInThisConfiguration[$Node] - } - - #this for tracking referenced Resource Module Source - if( $Script:NodesResourceSourceInThisConfiguration[$Node] ) - { - $Script:NodeResourceSource = $Script:NodesResourceSourceInThisConfiguration[$Node] - } - else - { - $Script:NodesResourceSourceInThisConfiguration[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeResourceSource = $Script:NodesResourceSourceInThisConfiguration[$Node] - } - - if(-not $Script:NodeTypeRefCount[$Node]) - { - $Script:NodeTypeRefCount[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,int]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeInstanceAliases[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeResourceIdAliases[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if(-not $script:NodesKeysInThisConfiguration[$Node]) - { - $script:NodesKeysInThisConfiguration[$Node] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.HashSet[string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - $Script:NodeKeys = $script:NodesKeysInThisConfiguration[$Node] - - # - # Set up the context variable list. - # - $variablesToDefine = @( - New-Object -TypeName PSVariable -ArgumentList ('SelectedNodes', $selectedNodesData) - New-Object -TypeName PSVariable -ArgumentList ('Node', $nodeDataMap[$Node]) - New-Object -TypeName PSVariable -ArgumentList ('NodeName', $Node) - ) - - # Initialize dictionary to detect duplicate resources - if ($Script:DuplicateResources -eq $null) - { - $Script:DuplicateResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if (-not $Script:DuplicateResources.ContainsKey($Name)) - { - $Script:DuplicateResources[$Name] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - try - { - # Evaluate the node's business logic scriptblock - Write-Debug -Message "*$Node : NODE PROCESSING STARTED FOR THIS NODE." - $Value.InvokeWithContext($functionsToDefine, $variablesToDefine) - } - catch [System.Management.Automation.MethodInvocationException] - { - # Write the unwrapped exception message - $pscmdlet.CommandRuntime.WriteError((Get-InnerMostErrorRecord $_)) - Update-ConfigurationErrorCount - } - - # Display warning if domain credential is used in the configuration. - if($Script:NodeUsingDomainCred.ContainsKey($Node) -and $Script:NodeUsingDomainCred[$Node]) - { - $nameMessage = $LocalizedData.DomainCredentialNotAllowed -f @($Node, $Node) - $UserWarningPreference = $WarningPreference - if($ArgsToBody['WarningAction'] -ne $null) - { - $UserWarningPreference = $ArgsToBody['WarningAction'] - } - Write-Warning -Message $nameMessage -WarningAction $UserWarningPreference - } - - # Validate make sure all of the required resources are defined - # if so, add the DependsOn fields for all resources - ValidateNodeResources - # - # Fixup ModuleVersion - # - Update-ModuleVersion $Script:NodeResources $Script:NodeInstanceAliases[$Node] $Script:NodeResourceIdAliases[$Node] - - # Validate make sure all of the referenced download managers are defined - ValidateNodeManager - - # Validate make sure all of the referenced resource source are defined - ValidateNodeResourceSource - - # Validate make sure no conflict between exclusive resources - # also validate exclusive resource exist - ValidateNodeExclusiveResources - - # Validate make sure all of the required resources are defined - ValidateNoCircleInNodeResources - - Write-Debug -Message "*$Node : NODE PROCESSING COMPLETED FOR THIS NODE. configuration errors encountered so far: $(Get-ConfigurationErrorCount)" - } - } - else - { - $errorMessage = $LocalizedData.NestedNodeNotAllowed -f @(($Name -join ','), (Get-PSCurrentConfigurationNode), $Script:PSConfigurationName) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId NestedNodeNotAllowed - Update-ConfigurationErrorCount - } - } - catch - { - $errorMessage = $_.Exception.Message + (Get-PositionInfo $sourceMetadata) - $errorMessage = $LocalizedData.FailToProcessNode -f @($Node, $errorMessage) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId FailToProcessNode - Update-ConfigurationErrorCount - } - finally - { - Set-PSCurrentConfigurationNode ($Script:PSOuterConfigurationNodes.Pop()) - $Script:NodeResources = $OldNodeResources - $Script:NodeKeys = $OldNodeKeys - Write-Debug -Message "*NODE STATEMENT PROCESSING COMPLETED. Configuration errors encountered so far: $(Get-ConfigurationErrorCount)" - } -} - -# -# Utility used to track the number of errors encountered while processing the configuration -# -function Update-ConfigurationErrorCount -{ - [OutputType([void])] - param() - - $Script:PSConfigurationErrors++ -} - -function Get-ConfigurationErrorCount -{ - [OutputType([int])] - param() - - $Script:PSConfigurationErrors -} - -function Get-ComplexResourceQualifier -{ - [OutputType([string])] - param() - - # walk the call stack to get at all of the enclosing configuration resource IDs - $stackedConfigs = @(Get-PSCallStack | - where { ($_.InvocationInfo.MyCommand -ne $null) -and ($_.InvocationInfo.MyCommand.CommandType -eq 'Configuration') }) - - $complexResourceQualifier = $null - # keep all but the top-most - if(@($stackedConfigs).Length -ge 3) - { - $stackedConfigs = $stackedConfigs[1..(@($stackedConfigs).Length - 2)] - # and build the complex resource ID suffix. - $complexResourceQualifier = ( $stackedConfigs | foreach { '[' + $_.Command + ']' + $_.InvocationInfo.BoundParameters['InstanceName'] } ) -join '::' - } - - return $complexResourceQualifier - } - -# -# A function to set the document text for default (unnamed) node -# -function Set-PSDefaultConfigurationDocument -{ - [OutputType([void])] - param ( - [Parameter()] - [string] - $documentText = '' - ) - - $Script:PSDefaultConfigurationDocument = $documentText -} - -# -# Get the text associated with the default (unnamed) node. -# -function Get-PSDefaultConfigurationDocument -{ - [OutputType([string])] - param() - - return $Script:PSDefaultConfigurationDocument -} - -################################################## -# -# Returns the name of the configuration currently being configured -# -function Get-PSTopConfigurationName -{ - [OutputType([string])] - param() - - return $Script:PSTopConfigurationName -} - -function Set-PSTopConfigurationName -{ - [OutputType([void])] - param ( - [Parameter()] - [string] - $Name - ) - - $Script:PSTopConfigurationName = $Name -} - -################################################## -# -# Returns the name of the node currently being configured -# -function Get-PSCurrentConfigurationNode -{ - [OutputType([string])] - param() - - return $Script:PSCurrentConfigurationNode -} - -function Set-PSCurrentConfigurationNode -{ - [OutputType([void])] - param ( - [Parameter()] - [string] - $nodeName - ) - - $Script:PSCurrentConfigurationNode = $nodeName -} - -################################################# - -function Set-NodeResources -{ - [OutputType([void])] - param ( - [Parameter(Mandatory)] - [string] - $resourceId, - [Parameter(Mandatory)] - [AllowNull()] - [AllowEmptyCollection()] - [string[]] - $requiredResourceList - ) - - if ($Script:NodeResources -eq $null) - { - $Script:NodeResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - $Script:NodeResources[$resourceId] = $requiredResourceList -} - -function Test-NodeResources -{ - [OutputType([bool])] - param ( - [Parameter(Mandatory)] - - [string] - $resourceId - ) - - if ( -not $Script:NodeResources) - { - $false - } - else - { - $Script:NodeResources.ContainsKey($resourceId) - } -} - -# -# update a mapping of a partial configuration resource and the managers it referenced -# -function Set-NodeManager -{ - [OutputType([void])] - param ( - [Parameter(Mandatory)] - [string] - $resourceId, - [Parameter(Mandatory)] - [AllowNull()] - [string[]] - $referencedManagers - ) - - if ($Script:NodeManager -eq $null) - { - $Script:NodeManager = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - $Script:NodeManager[$resourceId] = $referencedManagers -} - -# -# -# -function Test-NodeManager -{ - [OutputType([bool])] - param ( - [Parameter(Mandatory)] - - [string] - $resourceId - ) - - if ( -not $Script:NodeManager) - { - $false - } - else - { - $Script:NodeManager.ContainsKey($resourceId) - } -} - -# -# update a mapping of a partial configuration resource and the managers it referenced -# -function Set-NodeResourceSource -{ - [OutputType([void])] - param ( - [Parameter(Mandatory)] - [string] - $resourceId, - [Parameter(Mandatory)] - [AllowNull()] - [string[]] - $referencedResourceSources - ) - - if ($Script:NodeResourceSource -eq $null) - { - $Script:NodeResourceSource = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - $Script:NodeResourceSource[$resourceId] = $referencedResourceSources -} - -# -# -# -function Test-NodeResourceSource -{ - [OutputType([bool])] - param ( - [Parameter(Mandatory)] - - [string] - $resourceId - ) - - if ( -not $Script:NodeResourceSource) - { - $false - } - else - { - $Script:NodeResourceSource.ContainsKey($resourceId) - } -} - -# -# update a mapping of a partial configuration resource and the managers it referenced -# resource format can be moduleName\* moduleName\resourceName and resourceName -# this is validated during mof generation/cananic stage -# -function Set-NodeExclusiveResources -{ - [OutputType([string[]])] - param ( - [Parameter(Mandatory)] - [string] - $resourceId, - [Parameter(Mandatory)] - [AllowNull()] - [string[]] - $exclusiveResource - ) - - $Script:NodeExclusiveResources[$resourceId] = $exclusiveResource - return $exclusiveResource -} - - -function Add-NodeKeys -{ - [OutputType([void])] - param ( - [Parameter(Mandatory)] - [string] - $ResourceKey, - [parameter(Mandatory)] - [string] - $keywordName - ) - - if ($Script:NodeKeys -eq $null) - { - $Script:NodeKeys = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.HashSet[string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if( -not $Script:NodeKeys.ContainsKey($keywordName)) - { - $Script:NodeKeys[$keywordName] = New-Object -TypeName 'System.Collections.Generic.HashSet[string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if(-not $Script:NodeKeys[$keywordName].Contains($ResourceKey)) - { - $null = $Script:NodeKeys[$keywordName].Add($ResourceKey) - } - -} - -########################################################### -# -# A function to verify there's no duplicate conflicting resources in the configuration -# -# Conflict detecting algorithm works by going through all previuosly visited resources of same type and checking whether previously visited -# resource contains any properties which currently analyzed resource does not have or whether -# they have same properties but with different values. If that's the case, we mark that either key or non-key properties don't match. -# After that we check whether currently analyzed resource contains properties which the previously analyzed resource did not have at all. If that's the case we mark that -# non-key properties don't match (since all key properties were covered in the first phase). -# -# Once we processed all previous resources, we return error about duplicate conflicting resources if and only if key properties match and non key properties don't match. -# -########################################################### -function Test-ConflictingResources -{ - [OutputType([void])] - param ( - [string] - $keyword, - [parameter(Mandatory)] - [Hashtable] - $properties, - [Parameter(Mandatory)] - $keywordData - ) - $resourceID = $properties['ResourceID'] - $sourceInfo = $properties['SourceInfo'] - - $nonConflictingKeywords = @("PartialConfiguration", "WaitForAny", "WaitForSome", "WaitForAll") - if ($keyword -in $nonConflictingKeywords) - { - return - } - - # Get name of the current node - $currentNodeName = Get-PSCurrentConfigurationNode - if (-not $currentNodeName) - { - $currentNodeName = 'localhost' - } - - # Initialize $Script:DuplicateResources if not already initialized - if ($Script:DuplicateResources -eq $null) - { - $Script:DuplicateResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if (-not $Script:DuplicateResources.ContainsKey($currentNodeName)) - { - $Script:DuplicateResources[$currentNodeName] = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - } - - if ( -not $Script:DuplicateResources[$currentNodeName].ContainsKey($keyword)) - { - $Script:DuplicateResources[$currentNodeName][$keyword] = New-Object 'System.Collections.Generic.List[System.Collections.Hashtable]' - } - - # Find if current resource is duplicate and conflicting. - foreach($resource in $Script:DuplicateResources[$currentNodeName][$keyword]) - { - $keyPropertiesMatch = $true - $nonKeyPropertiesMatch = $true - $unmatchedNonKeyPropertiesNames = "" - $unmatchedNonKeyPropertiesCurrentValues = "" - $unmatchedNonKeyPropertiesPreviousValues = "" - - # For every property in previously analyzed resource - foreach($property in $resource.Keys) - { - $nonConflictingProperties = @("DependsOn", "ResourceID", "SourceInfo", "ModuleVersion") - if ($property -in $nonConflictingProperties) - { - continue - } - - # If currently analyzed resource does not have the property - if ( -not $properties.ContainsKey($property)) - { - $nonKeyPropertiesMatch = $false - $unmatchedNonKeyPropertiesNames += $property.ToString() + ';' - # Calling ToString() explicitly so that the value is not converted to Boolean/Integer - if ($resource[$property]) - { - $unmatchedNonKeyPropertiesPreviousValues += $resource[$property].ToString() + ';' - } - else - { - $unmatchedNonKeyPropertiesPreviousValues = $unmatchedNonKeyPropertiesPreviousValues.ToString() + 'NULL;' - } - $unmatchedNonKeyPropertiesCurrentValues = $unmatchedNonKeyPropertiesCurrentValues.ToString() + 'NULL;' - } - # If currently analyzed resource has property, but with different value - elseif ( $resource[$property] -ne $properties[$property] ) - { - # If it's a key property - if ($keywordData.Properties[$property].IsKey) - { - $keyPropertiesMatch = $false - break - } - # If it's a non-key property - else - { - $nonKeyPropertiesMatch = $false - $unmatchedNonKeyPropertiesNames += $property.ToString() + ';' - if ($resource[$property]) - { - $unmatchedNonKeyPropertiesPreviousValues += $resource[$property].ToString() + ';' - } - else - { - $unmatchedNonKeyPropertiesPreviousValues = $unmatchedNonKeyPropertiesPreviousValues.ToString() + 'NULL;' - } - - if ($properties[$property]) - { - $unmatchedNonKeyPropertiesCurrentValues += $properties[$property].ToString() + ';' - } - else - { - $unmatchedNonKeyPropertiesCurrentValues = $unmatchedNonKeyPropertiesCurrentValues.ToString() + 'NULL;' - } - } - } - } - - if ($keyPropertiesMatch) - { - foreach($property in $properties.Keys) - { - # If previously analyzed resource does not have property - if ((-not $resource.containsKey($property)) -and ($property -ne "ModuleVersion")) - { - $nonKeyPropertiesMatch = $false - $unmatchedNonKeyPropertiesNames += $property.ToString() + ';' - $unmatchedNonKeyPropertiesPreviousValues = $unmatchedNonKeyPropertiesPreviousValues.ToString() + 'NULL;' - if ($properties[$property]) - { - $unmatchedNonKeyPropertiesCurrentValues += $properties[$property].ToString() + ';' - } - else - { - $unmatchedNonKeyPropertiesCurrentValues = $unmatchedNonKeyPropertiesCurrentValues.ToString() + 'NULL;' - } - } - } - } - - # If resource is duplicate and conflicting we should return error - if ($keyPropertiesMatch -and (-not $nonKeyPropertiesMatch)) - { - $unmatchedNonKeyPropertiesNames = $unmatchedNonKeyPropertiesNames.Substring(0, $unmatchedNonKeyPropertiesNames.Length-1) - $unmatchedNonKeyPropertiesPreviousValues = $unmatchedNonKeyPropertiesPreviousValues.Substring(0, $unmatchedNonKeyPropertiesPreviousValues.Length-1) - $unmatchedNonKeyPropertiesCurrentValues = $unmatchedNonKeyPropertiesCurrentValues.Substring(0, $unmatchedNonKeyPropertiesCurrentValues.Length-1) - - $previousResourceIdentifier = $resource["ResourceID"] + " (" + $resource["SourceInfo"] + ")" - $currentResourceIdentifier = $resourceID + " (" + $sourceInfo + ")" - $errorMessage = $LocalizedData.ConflictingDuplicateResource -f @($previousResourceIdentifier, $currentResourceIdentifier, $currentNodeName, $unmatchedNonKeyPropertiesNames, $unmatchedNonKeyPropertiesPreviousValues, $unmatchedNonKeyPropertiesCurrentValues) - $exception = New-Object System.InvalidOperationException $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConflictingDuplicateResource - Update-ConfigurationErrorCount - } - } - - $Script:DuplicateResources[$currentNodeName][$keyword].Add($properties) - -} - -################################################# -# -# A function to get the innermost error record. -# -function Get-InnerMostErrorRecord -{ - param ( - [Parameter(Mandatory)] - [System.Management.Automation.ErrorRecord] - $ErrorRecord - ) - - $exception = $ErrorRecord.Exception - while ($exception.InnerException -and $exception.InnerException.ErrorRecord) - { - $exception = $exception.InnerException - $ErrorRecord = $exception.ErrorRecord - } - $ErrorRecord -} - -########################################################### -# -# A function to set up all of the module-scoped state variables. -# -function Initialize-ConfigurationRuntimeState -{ - param ( - [Parameter()] - [string] - $ConfigurationName = '' - ) - - # The overall name of the configuration being processed - [string] $Script:PSConfigurationName = $ConfigurationName - - # The ModuleVersion used for PsDesiredStateConfiguration module. - [string] $Script:PsDscModuleVersion = "0.0" - - # The compatibility version for the document.. - [string] $Script:PsDscCompatibleVersion = "1.0.0" - - # The list of modules explicitly imported using import-dscresorce - $Script:ExplicitlyImportedModules = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,String]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current configuration, this contains the name of the node currently being processed - [string] $Script:PSCurrentConfigurationNode = '' - - # For the current node, this contains a map of resource instance to resource prerequisites (DependsOn resources). - [System.Collections.Generic.Dictionary[string,string[]]] ` - $Script:NodeResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current node, this contains a map of partial configuration instance to configuration managers. - [System.Collections.Generic.Dictionary[string,string]] ` - $Script:NodeManager = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current node, this contains a map of partial configuration instance to Resource Source. - [System.Collections.Generic.Dictionary[string,string]] ` - $Script:NodeResourceSource = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current node, this contains a map of partial configuration instance to its exclusive resources. - [System.Collections.Generic.Dictionary[string,string[]]] ` - $Script:NodeExclusiveResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this contains the per-node per-type reference counter used to generate the CIM aliases for each instance - [System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,int]]] ` - $Script:NodeTypeRefCount = New-Object -TypeName 'System.Collections.Generic.Dictionary[string, System.Collections.Generic.Dictionary[string,int]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's table of alias to mof text mappings. - [System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,string]]] ` - $Script:NodeInstanceAliases = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's table of resourceID to mof text mappings. - [System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,string]]] ` - $Script:NodeResourceIdAliases = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's map of resource instance to resource prerequisites - [System.Collections.Generic.Dictionary[string,object]] ` - $Script:NodesInThisConfiguration = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's map of partial configuration resource instance to reference resource source. - [System.Collections.Generic.Dictionary[string,object]] ` - $Script:NodesResourceSourceInThisConfiguration = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's map of partial configuration resource instance to reference configuraiton manager. - [System.Collections.Generic.Dictionary[string,object]] ` - $Script:NodesManagerInThisConfiguration = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes except the unnamed node, this maps the node name to the node's map of resource instance to exclusive resource - [System.Collections.Generic.Dictionary[string,object]] ` - $Script:NodesExclusiveResourcesInThisConfiguration = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains a map of resource instance to resource prerequisites (required resources). - [System.Collections.Generic.Dictionary[String,String[]]] ` - $Script:NoNameNodesResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,String[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains a map of partial configuration resource instance to reference configuration manager. - [System.Collections.Generic.Dictionary[String,String]] ` - $Script:NoNameNodeManager = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,String[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains a map of partial configuration resource instance to reference resource source. - [System.Collections.Generic.Dictionary[String,String]] ` - $Script:NoNameNodeResourceSource = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,String[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains a map of partial configuration resource instance to its exclusive resources. - [System.Collections.Generic.Dictionary[String,String[]]] ` - $Script:NoNameNodeExclusiveResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,String[]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains the per-node per-type reference counter used to generate the CIM aliases for each instance - [System.Collections.Generic.Dictionary[String,int]] ` - $Script:NoNameNodeTypeRefCount = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,int]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this maps the node name to the node's table of alias to mof text mappings. - # Alias to mof text mapping for the unnamed node. - [System.Collections.Generic.Dictionary[string,string]] ` - $Script:NoNameNodeInstanceAliases = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this maps the node name to the node's table of resourceId to mof text mappings. - # Alias to mof text mapping for the unnamed node. - [System.Collections.Generic.Dictionary[string,string]] ` - $Script:NoNameNodeResourceIdAliases = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - #dictionary to save whether a node has encrypted password - [System.Collections.Generic.Dictionary[string,bool]] ` - $Script:NodesPasswordEncrypted = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,bool]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For all nodes, contain information about node using domain credential or not - [System.Collections.Generic.Dictionary[string,bool]] ` - $Script:NodeUsingDomainCred = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,bool]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - [System.Collections.Generic.Stack[String]] $Script:PSOuterConfigurationNodes = New-Object -TypeName 'System.Collections.Generic.Stack[String]' - - # The number of errors that have occurred while processing this configuration. - [int] $Script:PSConfigurationErrors = 0 - - # Set up a variable to hold a top-level OMI_ConfigurationDocument value - # which will be used by all nodes if it's present. - [string] $Script:PSDefaultConfigurationDocument = '' - - - # Set up a hastable to hold user specified info for OMI_ConfigurationDocument value for meta config - # we will need update it last after processing meta config to figure out what V2 property it uses - [hashtable] $script:PSMetaConfigDocumentInstVersionInfo = @{} - - [bool] $Script:PSMetaConfigDocInsProcessedBeforeMeta = $false - [bool] $script:PSMetaConfigurationProcessed = $false - - # For all nodes except the unnamed node, this maps the node name to the node's map of keys of resources. - [System.Collections.Generic.Dictionary[string,object]] ` - $script:NodesKeysInThisConfiguration = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,object]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current node, this contains keys of resource instances. - [System.Collections.Generic.Dictionary[string,System.Collections.Generic.HashSet[string]]] ` - $Script:NodeKeys = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.HashSet[string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the unnamed (default) node, this contains keys of resource instances. - [System.Collections.Generic.Dictionary[String,System.Collections.Generic.HashSet[string]]] ` - $Script:NoNameNodeKeys = New-Object -TypeName 'System.Collections.Generic.Dictionary[String,System.Collections.Generic.HashSet[string]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # For the current configuration, $Script:DuplicateResources["Type"] contains list with properties of all resources of the specific type - [System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]]] ` - $Script:DuplicateResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,System.Collections.Generic.Dictionary[string,System.Collections.Generic.List[System.Collections.Hashtable]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - - # Show Import-DscResource warning if in-build resources are used in the Configuration without Import-DscResource statement. - [bool] $script:ShowImportDscResourceWarning = $false - - # For testing whether setting meta configuration into PULL mode without appropriate configuration manager - [bool] $script:MetaConfigSetToPull = $false - [bool] $script:SpecifiedV1DownloadManagerName = $false - [bool] $script:SpecifiedV2DownloadManager = $false -} - -# -# Then call it to enact the default state. This happens -# only once during the module load. Thereafter the -# configuration function is responsible for resetting state. -# -Initialize-ConfigurationRuntimeState - -# make sure configuration data format: -# 1. Is a hashtable -# 2. Has a collection AllNodes -# 3. Allnodes is an collection of Hashtable -# 4. Each element of Allnodes has NodeName -# 5. We will copy values from NodeName="*" to all node if they don't exist -function ValidateUpdate-ConfigurationData -{ - param ( - [Parameter()] - [hashtable] - $ConfigurationData - ) - - if( -not $ConfigurationData.ContainsKey('AllNodes')) - { - $errorMessage = $LocalizedData.ConfiguratonDataNeedAllNodes - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConfiguratonDataNeedAllNodes - return $false - } - - if($ConfigurationData.AllNodes -isnot [array]) - { - $errorMessage = $LocalizedData.ConfiguratonDataAllNodesNeedHashtable - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConfiguratonDataAllNodesNeedHashtable - return $false - } - - $nodeNames = New-Object -TypeName 'System.Collections.Generic.HashSet[string]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - foreach($Node in $ConfigurationData.AllNodes) - { - if($Node -isnot [hashtable] -or -not $Node.NodeName) - { - $errorMessage = $LocalizedData.AllNodeNeedToBeHashtable - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConfiguratonDataAllNodesNeedHashtable - return $false - } - - if($nodeNames.Contains($Node.NodeName)) - { - $errorMessage = $LocalizedData.DuplicatedNodeInConfigurationData -f $Node.NodeName - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId DuplicatedNodeInConfigurationData - return $false - } - - if($Node.NodeName -eq '*') - { - $AllNodeSettings = $Node - } - [void] $nodeNames.Add($Node.NodeName) - } - - if($AllNodeSettings) - { - foreach($Node in $ConfigurationData.AllNodes) - { - if($Node.NodeName -ne '*') - { - foreach($nodeKey in $AllNodeSettings.Keys) - { - if(-not $Node.ContainsKey($nodeKey)) - { - $Node.Add($nodeKey, $AllNodeSettings[$nodeKey]) - } - } - } - } - - $ConfigurationData.AllNodes = @($ConfigurationData.AllNodes | Where-Object -FilterScript { - $_.NodeName -ne '*' - } - ) - } - - return $true -} - -############################################################## -# -# Checks to see if a module defining composite resources should be reloaded -# based the last write time of the schema file. Returns true if the file exists -# and the last modified time was either not recorded or has change. -# -function Test-ModuleReloadRequired -{ - [OutputType([bool])] - param ( - [Parameter(Mandatory)] - [string] - $SchemaFilePath - ) - - if (-not $SchemaFilePath -or $SchemaFilePath -notmatch '\.schema\.psm1$') - { - # not a composite res - return $false - } - - # If the path doesn't exist, then we can't reload it. - # Note: this condition is explicitly not an error for this function. - if ( -not (Test-Path $SchemaFilePath)) - { - if ($schemaFileLastUpdate.ContainsKey($SchemaFilePath)) - { - $schemaFileLastUpdate.Remove($SchemaFilePath) - } - return $false - } - - # If we have a modified date, then return it. - if ($schemaFileLastUpdate.ContainsKey($SchemaFilePath)) - { - if ( (Get-Item $SchemaFilePath).LastWriteTime -eq $schemaFileLastUpdate[$SchemaFilePath] ) - { - return $false - } - else - { - return $true - } - } - - # Otherwise, record the last write time and return true. - $script:schemaFileLastUpdate[$SchemaFilePath] = (Get-Item $SchemaFilePath).LastWriteTime - $true -} -# Holds the schema file to lastwritetime mapping. -[System.Collections.Generic.Dictionary[string,DateTime]] $script:schemaFileLastUpdate = -New-Object -TypeName 'System.Collections.Generic.Dictionary[string,datetime]' - -########################################################### -# Configuration keyword implementation -########################################################### -# -# Implements the 'configuration' keyword logic that accumulates and writes -# out the generated DSC MOF files -# -function Configuration -{ - [CmdletBinding(HelpUri = 'https://go.microsoft.com/fwlink/?LinkId=517195')] - param ( - # there are extra [] around Tuple arguments - [System.Collections.Generic.List[System.Tuple[[string[]], [Microsoft.PowerShell.Commands.ModuleSpecification[]], [Version]]]] - $ResourceModuleTuplesToImport, - $OutputPath = '.', - $Name, - [scriptblock] - $Body, - [hashtable] - $ArgsToBody, - [hashtable] - $ConfigurationData = @{ - AllNodes = @() - }, - [string] - $InstanceName = '' - ) - - - function ConvertModuleDefnitionToModuleInfo - { - param( - [Microsoft.PowerShell.Commands.ModuleSpecification[]]$moduleToImport, - [Version]$moduleVersion = $null - ) - - if (-not $moduleToImport) { - return $null - } - - $moduleToImport | % { - $versionToUse = $_.Version - if( [string]::IsNullOrEmpty($versionToUse)) - { - $versionToUse = $_.RequiredVersion - } - $Script:ExplicitlyImportedModules[ $_.Name ] = $versionToUse - } - $moduleInfos = Get-Module -ListAvailable -FullyQualifiedName $moduleToImport | sort -Property Version -Descending - - # Import-DscResource matches exact version of the module if ‘ModuleVersion’ is specified. - # This is intentional, ModuleVersion keyword doesn’t refer to the latest version in Import-DscResource. - # Find the module that matches specified version. - $modules = New-Object -TypeName System.Collections.ObjectModel.Collection[System.Management.Automation.PSModuleInfo] - if (($moduleInfos.Count -gt 0) -and ($moduleToImport.Version -or $moduleToImport.Guid)) - { - foreach ($moduleInfo in $moduleInfos) - { - if (($moduleToImport.Guid -and $moduleToImport.Guid.Equals($moduleInfo.Guid.ToString())) -or - ($moduleToImport.Version -and $moduleToImport.Version.Equals($moduleInfo.Version))) - { - $modules.Add($moduleInfo) - break - } - } - } - elseif ($moduleInfos.Count -eq 1) - { - $modules.Add($moduleInfos) - } - - return $modules - } - - try - { - Write-Debug -Message "BEGIN CONFIGURATION '$Name' PROCESSING: OutputPath: '$OutputPath'" - - if ($Name -inotmatch '^[a-z][a-z0-9_./-]*$') - { - $errorId = 'InvalidConfigurationName' - $errorMessage = $($LocalizedData.InvalidConfigurationName) -f ${Name} - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId $errorId - } - - $script:IsMetaConfig = $false - foreach($attri in $Body.Attributes) - { - if ($attri.GetType() -eq [System.Management.Automation.DscLocalConfigurationManagerAttribute]) - { - $script:IsMetaConfig = $true - $Script:PSMetaConfigDocInsProcessedBeforeMeta = $false - $script:PSMetaConfigurationProcessed = $false - break - } - } - - # True if this is the top-most level of the configuration statement. - # - [bool] $topLevel = $false - - if ($Script:PSConfigurationName -eq '') - { - Write-Debug -Message " $Name : TOP-LEVEL CONFIGURATION STARTED" - $topLevel = $true - Set-PSTopConfigurationName $Name - # - # Define a dictionary to hold the "driver" functions that will be created for each CIM class/keyword. - # This dictionary is passed into the body scriptblock, defining these functions in the body scope - # which simplifies cleanup. - # - $script:functionsToDefine = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,ScriptBlock]'([System.StringComparer]::OrdinalIgnoreCase) - - if($ConfigurationData -eq $null) - { - $ConfigurationData = @{ - AllNodes = @() - } - } - - $dataValidated = ValidateUpdate-ConfigurationData $ConfigurationData - - if (-not $dataValidated) - { - Update-ConfigurationErrorCount - Write-Debug -Message 'ConfigurationData validation failed' - return - } - else - { - $script:ConfigurationData = $ConfigurationData - } - - if($OutputPath -eq '.' -or $OutputPath -eq $null -or $OutputPath -eq '') - { - $OutputPath = ".\$Name" - } - # Load the default CIM keyword/function definitions set, populating the function collection - # with the default functions. - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::LoadDefaultCimKeywords($functionsToDefine) - - # Set up the rest of the configuration runtime state. - Initialize-ConfigurationRuntimeState $Name - - # Create the output directory only if it does not exist. - # If it exists then the document MOF files will overwrite - # any existing MOF files with the same name but otherwise - # leave contents of existing directory alone. - $ConfigurationOutputDirectory = "$OutputPath" - if (!(Test-Path $ConfigurationOutputDirectory)) - { - $mkdirError = $null - mkdir -ErrorVariable mkdirError -Force $ConfigurationOutputDirectory > $null 2> $null - if (! $?) - { - Update-ConfigurationErrorCount - } - - if ($mkdirError) - { - $errorId = 'InvalidOutputPath' - $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation - $errorMessage = $($LocalizedData.CannotCreateOutputPath) -f ${ConfigurationOutputDirectory} - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - $ErrorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord -ArgumentList $exception, $errorId, $errorCategory, $null - Write-Error $ErrorRecord - foreach ($e in $mkdirError) - { - Write-Error -Exception $e.Exception - Update-ConfigurationErrorCount - } - } - } - - # - # Add the utility functions used by the resource implementation functions. - # - $functionsToDefine.Add('Get-MofInstanceText', ${function:Get-MofInstanceText} ) - $functionsToDefine.Add('ConvertTo-MOFInstance', ${function:ConvertTo-MOFInstance} ) - $functionsToDefine.Add('Update-ConfigurationErrorCount', ${function:Update-ConfigurationErrorCount} ) - $functionsToDefine.Add('Get-ConfigurationErrorCount', ${function:Get-ConfigurationErrorCount} ) - $functionsToDefine.Add('Set-PSDefaultConfigurationDocument', ${function:Set-PSDefaultConfigurationDocument} ) - $functionsToDefine.Add('Get-PSDefaultConfigurationDocument', ${function:Get-PSDefaultConfigurationDocument} ) - $functionsToDefine.Add('Get-PSCurrentConfigurationNode', ${function:Get-PSCurrentConfigurationNode} ) - $functionsToDefine.Add('Set-NodeResources', ${function:Set-NodeResources} ) - $functionsToDefine.Add('Test-NodeResources', ${function:Test-NodeResources} ) - $functionsToDefine.Add('Set-NodeManager', ${function:Set-NodeManager} ) - $functionsToDefine.Add('Test-NodeManager', ${function:Test-NodeManager} ) - $functionsToDefine.Add('Set-NodeResourceSource', ${function:Set-NodeResourceSource} ) - $functionsToDefine.Add('Test-NodeResourceSource', ${function:Test-NodeResourceSource} ) - $functionsToDefine.Add('Set-NodeExclusiveResources', ${function:Set-NodeExclusiveResources} ) - $functionsToDefine.Add('Add-NodeKeys', ${function:Add-NodeKeys} ) - $functionsToDefine.Add('Test-ConflictingResources', ${function:Test-ConflictingResources} ) - $functionsToDefine.Add('Set-PSMetaConfigDocInsProcessedBeforeMeta', ${function:Set-PSMetaConfigDocInsProcessedBeforeMeta} ) - $functionsToDefine.Add('Get-PSMetaConfigDocumentInstVersionInfo', ${function:Get-PSMetaConfigDocumentInstVersionInfo} ) - $functionsToDefine.Add('Get-PSMetaConfigurationProcessed', ${function:Get-PSMetaConfigurationProcessed} ) - $functionsToDefine.Add('Set-PSMetaConfigVersionInfoV2', ${function:Set-PSMetaConfigVersionInfoV2}) - - # - # Add the node keyword implementation function which must be module qualified even though - # it's not exported from the module because the parsing logic always adds the module name - # to the command call. - # - $functionsToDefine.Add('PSDesiredStateConfiguration\node', ${function:Node}) - - Write-Debug -Message " $Name : $($functionsToDefine.Count) type handler functions loaded." - Write-Debug -Message " $Name TOP-LEVEL INITIALIZATION COMPLETED" - } - else - { - Write-Debug -Message " $Name : NESTED CONFIGURATION STARTED" - $oldFunctionsToDefine = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,ScriptBlock]' - } - - # - # Load all of the required resource definition modules - # - - foreach ($tuple in $ResourceModuleTuplesToImport) - { - $res = $tuple.Item1 - $modulesInfo = ConvertModuleDefnitionToModuleInfo -moduleToImport $tuple.Item2 -moduleVersion $tuple.Item3 - - if ($modulesInfo.Count -eq 0) { - # Module name is not specified. Try to load resource from all available modules. - $modulesInfo = Get-Module -ListAvailable - } - - foreach ($mod in $modulesInfo) { - - $resourcesFound = ImportClassResourcesFromModule -Module $mod -Resources $res -functionsToDefine $functionsToDefine - $dscResourcesPath = Join-Path -Path $mod.ModuleBase -ChildPath 'DSCResources' - if(Test-Path $dscResourcesPath) - { - foreach($requiredResource in $res) - { - if ($requiredResource.Contains('*')) { - # we historically resolve wildcards by Get-Item File System rules. - # We don't support wildcards resolutions for Friendly names. - foreach ($resource in Get-ChildItem -Path $dscResourcesPath -Directory -Name -Filter $requiredResource) - { - $foundResource = ImportCimAndScriptKeywordsFromModule -Module $mod -Resource $resource -functionsToDefine $functionsToDefine - } - } else { - # ImportCimAndScriptKeywordsFromModule takes care about resolving $requiredResources names to ClassNames or FriendlyNames. - $foundResource = ImportCimAndScriptKeywordsFromModule -Module $mod -Resource $requiredResource -functionsToDefine $functionsToDefine - } - } - } - elseif ($moduleInfos.Count -eq 1) - { - $modules.Add($moduleInfos) - } - } - } - - if (-not (Get-PSCurrentConfigurationNode)) - { - # A dictionary maps a resourceId to its list of required resources list for any resources - # defined outside of a node statement - $Script:NodeResources = $Script:NoNameNodesResources - $Script:NodeKeys = $Script:NoNameNodeKeys - [System.Collections.Generic.Dictionary[string,string[]]] $OldNodeResources = - New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Script:NodeManager = $Script:NoNameNodeManager - $Script:NodeExclusiveResources = $Script:NoNameNodeExclusiveResources - $Script:NodeResourceSource = $Script:NoNameNodeResourceSource - - } - else - { - $Script:NodeResources = $Script:NodesInThisConfiguration[(Get-PSCurrentConfigurationNode)] - $Script:NodeManager = $Script:NodesManagerInThisConfiguration[(Get-PSCurrentConfigurationNode)] - $Script:NodeResourceSource = $Script:NodesResourceSourceInThisConfiguration[(Get-PSCurrentConfigurationNode)] - $Script:NodeExclusiveResources = $Script:NodesExclusiveResourcesInThisConfiguration[(Get-PSCurrentConfigurationNode)] - } - - # - # Evaluate the configuration statement body which will generate the resource definitons - # for this configuration. - # - Write-Debug -Message " $Name : Evaluating configuration statement body..." - try - { - $variablesToDefine = @( - # - # Figure out the "type" of this resource, with is the name of the driver function that was called. - # - New-Object -TypeName PSVariable -ArgumentList ('ConfigurationData', $script:ConfigurationData ) - New-Object -TypeName PSVariable -ArgumentList ('MyTypeName', $ExecutionContext.SessionState.Module.GetVariableFromCallersModule('MyInvocation').Value.MyCommand.Name) - New-Object -TypeName PSVariable -ArgumentList ('IsMetaConfig', $script:IsMetaConfig) - New-Object -TypeName PSVariable -ArgumentList ('V1MetaConfigPropertyList', $script:V1MetaConfigPropertyList) - if($script:ConfigurationData) - { - New-Object -TypeName PSVariable -ArgumentList ('AllNodes', $script:ConfigurationData.AllNodes) - } - ) - - $variablesToDefine += foreach ($key in $ArgsToBody.Keys) - { - # - # we need to process dependsOn seperately to - # 1. combined depends on with possible upper level configuration statement (composite resource case - # 2. in case of 1, we also need to fix up the dependson to append the suffix of ::$complexResourceQualifier similar in func:Test-DependsOn in CimDSCParser - # - # we need to process PsDscRunAsCredential seperately as well - # because it will be set recursively to all composite resources - if(($key -ne 'DependsOn') -and ($key -ne 'PsDscRunAsCredential')) - { - New-Object -TypeName PSVariable -ArgumentList ($key, $ArgsToBody[$key]) - } - } - - if($DependsOn -or $ArgsToBody['DependsOn']) - { - $complexResourceQualifier = Get-ComplexResourceQualifier - if($complexResourceQualifier) - { - $updatedDependsOn = foreach($DependsOnVar in @($ArgsToBody['DependsOn'])) - { - if($DependsOnVar) - { - "$DependsOnVar::$complexResourceQualifier" - } - } - $DependsOn = @($DependsOn) + @($updatedDependsOn) - } - else - { - $DependsOn = @($DependsOn) + @($ArgsToBody['DependsOn']) - } - - $variablesToDefine += New-Object -TypeName PSVariable -ArgumentList('DependsOn', $DependsOn) - } - - # If PsDscRunAsCredential is specified both in Outer configuration and inner composite resource we give error when merging PsDscRunAsCredential - if($PsDscRunAsCredential -and $ArgsToBody['PsDscRunAsCredential']) - { - Update-ConfigurationErrorCount - Write-Error -ErrorRecord ([Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::PsDscRunAsCredentialMergeErrorForCompositeResources($InstanceName)) - } - - # If PsDscRunAsCredential is specified in Configuration Argment or in outer configuration as $PsDscRunAsCredential - # set it as a varaible for current configurtaion. - if($PsDscRunAsCredential -or $ArgsToBody['PsDscRunAsCredential']) - { - if($ArgsToBody['PsDscRunAsCredential']) - { - $PsDscRunAsCredential = $ArgsToBody['PsDscRunAsCredential'] - } - $variablesToDefine += New-Object -TypeName PSVariable -ArgumentList('PsDscRunAsCredential', $PsDscRunAsCredential) - } - - $result = $Body.InvokeWithContext($functionsToDefine, $variablesToDefine) - } - catch [System.Management.Automation.MethodInvocationException] - { - Write-Debug -Message " $Name : Top level exception: $($_ | Out-String)" - # Write the unwrapped exception message - $pscmdlet.CommandRuntime.WriteError((Get-InnerMostErrorRecord $_)) - Update-ConfigurationErrorCount - } - - # - # write the generated files to disk and return the resulting files to stdout. - # - - if( $topLevel ) - { - if($Script:NoNameNodeInstanceAliases.Count -gt 0) - { - if ($Script:NodeInstanceAliases.ContainsKey('localhost')) - { - $errorMessage = $LocalizedData.LocalHostNodeNotAllowed -f "$Name" - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId LocalHostNodeNotAllowed - Update-ConfigurationErrorCount - } - - # - # Fixup DependsOn - # - ValidateNoNameNodeResources - Update-DependsOn $Script:NoNameNodesResources $Script:NoNameNodeInstanceAliases $Script:NoNameNodeResourceIdAliases - - - Write-Debug -Message " $Name : Evaluation completed, validating the generated resource set." - ValidateNodeResources - Write-Debug -Message " $Name Validation completed." - - # - # Fixup ModuleVersion - # - Update-ModuleVersion $Script:NoNameNodesResources $Script:NoNameNodeInstanceAliases $Script:NoNameNodeResourceIdAliases - - Write-Debug -Message " $Name : Evaluation completed, validating the generated resource set has no circle." - ValidateNoCircleInNodeResources - Write-Debug -Message " $Name Validation circle completed." - - if($script:IsMetaConfig) - { - # Validate make sure all of the referenced download managers are defined - Write-Debug -Message " $Name : Evaluation completed, validating the generated resource set reference download manager." - ValidateNodeManager - Write-Debug -Message " $Name Validation completed." - - # Validate make sure all of the referenced resource source are defined - Write-Debug -Message " $Name : Evaluation completed, validating the generated resource set reference resource source." - ValidateNodeResourceSource - Write-Debug -Message " $Name Validation completed." - - # Validate make sure new conflict between exclusive resources - Write-Debug -Message " $Name : Evaluation completed, validating no conflict between exclusive resources." - ValidateNodeExclusiveResources - Write-Debug -Message " $Name Validation completed." - - Write-MetaConfigFile $Name 'localhost' $Script:NoNameNodeInstanceAliases - } - else - { - Update-ConfigurationDocumentRef $Script:NoNameNodesResources $Script:NoNameNodeInstanceAliases $Script:NoNameNodeResourceIdAliases $Name - # - # Write the mof instance texts to files - # - Write-NodeMOFFile $Name 'localhost' $Script:NoNameNodeInstanceAliases - } - - # If no script-level $ConfigurationData variable is set, this code - # tries to get it first, from a global PowerShell ConfigurationData variable, - # then if that doesn't work it trys the environment - # variable $ENV:ConfigurationData when is expected to contain a JSON string - # that will be converted to objects. - # - if (-not $script:ConfigurationData) - { - $script:ConfigurationData = try - { - if ($global:ConfigurationData) - { - $global:ConfigurationData - } - elseif ($ENV:ConfigurationData) - { - $ENV:ConfigurationData | ConvertFrom-Json - } - else - { - @() - } - } - catch - { - Write-Error $_ - Update-ConfigurationErrorCount - @() - } - } - } - - if($script:ShowImportDscResourceWarning) - { - $message = $LocalizedData.ImportDscResourceWarningForInbuiltResource -f @(Get-PSTopConfigurationName) - $ImportDscResourceWarningPreference = $WarningPreference - if($ArgsToBody['WarningAction'] -ne $null) - { - $ImportDscResourceWarningPreference = $ArgsToBody['WarningAction'] - } - Write-Warning -Message $message -WarningAction $ImportDscResourceWarningPreference - } - - # - # write using the top-level hashtable - # - foreach($mofNode in $Script:NodeInstanceAliases.Keys) - { - # - # Fixup DependsOn - # - Update-DependsOn $Script:NodesInThisConfiguration[$mofNode] $Script:NodeInstanceAliases[$mofNode] $Script:NodeResourceIdAliases[$mofNode] - - if($script:IsMetaConfig) - { - Write-MetaConfigFile $Name $mofNode $Script:NodeInstanceAliases[$mofNode] - } - else - { - Update-ConfigurationDocumentRef $Script:NodesInThisConfiguration[$mofNode] $Script:NodeInstanceAliases[$mofNode] $Script:NodeResourceIdAliases[$mofNode] $Name - # - # Write the mof instance texts to files - # - Write-NodeMOFFile $Name $mofNode $Script:NodeInstanceAliases[$mofNode] - } - } - - if ($Script:PSConfigurationErrors -gt 0) - { - $errorMessage = $LocalizedData.FailToProcessConfiguration -f "$Name" - ThrowError -ExceptionName 'System.InvalidOperationException' -ExceptionMessage $errorMessage -ExceptionObject "$Name" -ErrorId 'FailToProcessConfiguration' -ErrorCategory InvalidOperation - } - } - } - finally - { - if($topLevel) - { - Write-Debug -Message " CONFIGURATION $Name : DOING TOP-LEVEL CLEAN UP" - [System.Management.Automation.Language.DynamicKeyword]::Reset() - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ClearCache() - - Initialize-ConfigurationRuntimeState - } - Write-Debug -Message "END CONFIGURATION '$Name' PROCESSING. OutputPath: '$OutputPath'" - } -} -Export-ModuleMember -Function Configuration - -function Update-ModuleVersion -{ - [OutputType([void])] - param( - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[String,String[]]] - $NodeResources, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeInstanceAliases, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeResourceIdAliases - ) - - $moduleVersionValue = '0.0' - - # explicit import-dscresource with version for psdesiredstateconfiguration module was not done. - if( $Script:ExplicitlyImportedModules.ContainsKey('PsDesiredStateConfiguration') -and - (-not [string]::IsNullOrEmpty($Script:ExplicitlyImportedModules['PsDesiredStateConfiguration']))) - { - $moduleVersionValue= $script:PsDscModuleVersion - } - # generating compatible document. - elseif($script:PsDscCompatibleVersion -eq '1.0.0') - { - $moduleVersionValue='1.0' - } - - # The logic is to insert correct moduleVersion for PsDesiredStateConfiguration module. In case of composite - # configuration,determination of what module version to use can happen later. Hence we update all objects - # after processing of every composite configuration to reflect upon with up to date information. - foreach($resourceId in $NodeResources.keys) - { - $alias = $NodeResourceIdAliases[$resourceId] - $instanceText = $NodeInstanceAliases[$alias] - $curlyPosition = $instanceText.LastIndexOf('}') - # check if the resource is from PsDesiredStateConfiguraiton Module. - if(($curlyPosition -gt 0) -and ($instanceText -imatch 'ModuleName[\s]*=[\s]*["]PsDesiredStateConfiguration["]')) - { - $moduleVersionstring = "ModuleVersion = " - $moduleVersionstring += "`"$moduleVersionValue`"" + ";" - - # if ModuleVersion field is not there - if($instanceText -inotmatch 'ModuleVersion[\s]*=') - { - $first = $instanceText.Substring(0, $curlyPosition) - $NodeInstanceAliases[$alias] = $first + $moduleVersionstring + "`r`n};" - } - else - { - #match pattern for eg: 'ModuleVersion = "1.0"' - $regexExpression = 'ModuleVersion[\s]*=[\s]*["][\d.]*["][\s]*;' - $NodeInstanceAliases[$alias] = $instanceText -replace $regexExpression, $moduleVersionstring - } - } - } -} - -function Update-DependsOn -{ - [OutputType([void])] - param( - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[String,String[]]] - $NodeResources, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeInstanceAliases, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeResourceIdAliases - ) - - foreach($resourceId in $NodeResources.keys) - { - $alias = $NodeResourceIdAliases[$resourceId] - $needAdd = $false - $instanceText = $NodeInstanceAliases[$alias] - if($NodeResources[$resourceId]) - { - $curlyPosition = $instanceText.LastIndexOf('}') - if(($curlyPosition -gt 0) -and ($instanceText -notmatch 'dependsOn[\s]*=')) - { - $needAdd = $true - $first = $instanceText.Substring(0, $curlyPosition) - - $dependsOn = "DependsOn = {`r`n" - $len = @($NodeResources[$resourceId]).Length - $dependsOn += foreach ($resourceId in $NodeResources[$resourceId]) - { - ' ' + "`"$($resourceId -replace '\\', '\\' -replace '"', '\"')`"" + - $(if (--$len -gt 0) - { - ",`r`n" - } - else - { - '' - } - ) - } - $dependsOn += '};' - } - } - - if($needAdd) - { - $NodeInstanceAliases[$alias] = $first + $dependsOn + "`r`n};" - } - } -} - -# -# add a reference to each resource to point to the OMI_ConfigurationDocument -# so it can be differiencated after merging of partical configurations -# -function Update-ConfigurationDocumentRef -{ - [OutputType([void])] - param( - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[String,String[]]] - $NodeResources, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeInstanceAliases, - - [Parameter(Mandatory)] - [System.Collections.Generic.Dictionary[string,string]] - $NodeResourceIdAliases, - - [Parameter(Mandatory)] - [string] - $ConfigurationName - ) - - foreach($resourceId in $NodeResources.keys) - { - $alias = $NodeResourceIdAliases[$resourceId] - $instanceText = $NodeInstanceAliases[$alias] - $needAdd = $false - $curlyPosition = $instanceText.LastIndexOf('}') - if($curlyPosition -gt 0) - { - $needAdd = $true - $first = $instanceText.Substring(0, $curlyPosition).TrimEnd() - - $ConfigurationNameRef = "`r`n ConfigurationName = `"$ConfigurationName`";" - } - - if($needAdd) - { - $NodeInstanceAliases[$alias] = $first + $ConfigurationNameRef + "`r`n};" - } - } -} - -function ImportClassResourcesFromModule -{ - param ( - [Parameter(Mandatory)] - [PSModuleInfo] - $Module, - - [Parameter(Mandatory)] - [System.Collections.Generic.List[string]] - $Resources, - - [System.Collections.Generic.Dictionary[string, scriptblock]] - $functionsToDefine - ) - - $resourcesFound = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ImportClassResourcesFromModule($Module, $Resources, $functionsToDefine) - return ,$resourcesFound -} - -function ImportCimAndScriptKeywordsFromModule -{ - param ( - [Parameter(Mandatory)] - $Module, - - [Parameter(Mandatory)] - $resource, - - $functionsToDefine - ) - - trap - { - continue - } - - $SchemaFilePath = $null - $oldCount = $functionsToDefine.Count - - $keywordErrors = New-Object -TypeName 'System.Collections.ObjectModel.Collection[System.Exception]' - - $foundCimSchema = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ImportCimKeywordsFromModule( - $Module, $resource, [ref] $SchemaFilePath, $functionsToDefine, $keywordErrors) - - foreach($ex in $keywordErrors) - { - Write-Error -Exception $ex - if($ex.InnerException) - { - Write-Error -Exception $ex.InnerException - } - } - - $functionsAdded = $functionsToDefine.Count - $oldCount - Write-Debug -Message " $Name : PROCESSING RESOURCE FILE: Added $functionsAdded type handler functions from '$SchemaFilePath'" - - $SchemaFilePath = $null - $oldCount = $functionsToDefine.Count - - $foundScriptSchema = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ImportScriptKeywordsFromModule( - $Module, $resource, [ref] $SchemaFilePath, $functionsToDefine ) - - $functionsAdded = $functionsToDefine.Count - $oldCount - Write-Debug -Message " $Name : PROCESSING RESOURCE FILE: Added $functionsAdded type handler functions from '$SchemaFilePath'" - - if ($foundScriptSchema -and $SchemaFilePath) - { - $resourceDirectory = Split-Path $SchemaFilePath - if($resourceDirectory -ne $null) - { - Import-Module -Force: (Test-ModuleReloadRequired $SchemaFilePath) -Verbose:$false -Name $resourceDirectory -Global -ErrorAction SilentlyContinue - } - } - - return $foundCimSchema -or $foundScriptSchema -} - -# -# A function to write the MOF instance texts of a node to files as meta config -# -function Write-MetaConfigFile -{ - param( - [string] - $ConfigurationName, - - [string] - $mofNode, - - [System.Collections.Generic.Dictionary[string,string]] - $mofNodeHash - - ) - - # Set up prefix for both the configuration and metaconfiguration documents. - $nodeDoc = "/*`n@TargetNode='$mofNode'`n" + "@GeneratedBy=$([system.environment]::UserName)`n@GenerationDate=$(Get-Date)`n@GenerationHost=$([system.environment]::MachineName)`n*/`n" - $nodeConfigurationDocument = $null - [int]$nodeDocCount = 0 - $resourceManagers = $null - $resourceManagersCount = 0 - $reportManagers = $null - $reportManagersCount = 0 - $downloadManagers = $null - $downloadManagersCount = 0 - $localConfigManager = $null - $partialConfiguratons = $null - $partialConfigurationCount = 0 - $signatureValidationPolicies = $null - $signatureValidationCount = 0 - - foreach($mofTypeName in $mofNodeHash.Keys) - { - if($mofTypeName -match 'OMI_ConfigurationDocument') - { - $nodeConfigurationDocument = $mofNodeHash[$mofTypeName] - } - - if($mofTypeName -match 'MSFT_WebDownloadManager' -or $mofTypeName -match 'MSFT_FileDownloadManager') - { - $r = $mofNodeHash[$mofTypeName] -match '\$\w*' - if($r) - { - if($downloadManagersCount++ -gt 0) - { - $downloadManagers += ",`n" - } - $downloadManagers += ' ' + $Matches[0] - } - $script:SpecifiedV2DownloadManager = $true - } - - if($mofTypeName -match 'MSFT_WebResourceManager' -or $mofTypeName -match 'MSFT_FileResourceManager') - { - $r = $mofNodeHash[$mofTypeName] -match '\$\w*' - if($r) - { - if($resourceManagersCount++ -gt 0) - { - $resourceManagers += ",`n" - } - $resourceManagers += ' ' +$Matches[0] - } - } - - if($mofTypeName -match 'MSFT_OaaSReportManager' -or $mofTypeName -match 'MSFT_WebReportManager') - { - $r = $mofNodeHash[$mofTypeName] -match '\$\w*' - if($r) - { - if($reportManagersCount++ -gt 0) - { - $reportManagers += ",`n" - } - $reportManagers += ' ' +$Matches[0] - } - } - - #MSFT_PartialConfiguration - if($mofTypeName -match 'MSFT_PartialConfiguration') - { - $r = $mofNodeHash[$mofTypeName] -match '\$\w*' - if($r) - { - if($partialConfigurationCount++ -gt 0) - { - $partialConfiguratons += ",`n" - } - $partialConfiguratons += ' ' +$Matches[0] - } - } - - #MSFT_SignatureValidation - if($mofTypeName -match 'MSFT_SignatureValidation') - { - $r = $mofNodeHash[$mofTypeName] -match '\$\w*' - if($r) - { - if($signatureValidationCount++ -gt 0) - { - $signatureValidations += ",`n" - } - $signatureValidations += ' ' +$Matches[0] - } - } - - if($mofTypeName -notmatch 'MSFT_DSCMetaConfiguration') - { - $nodeDoc += $mofNodeHash[$mofTypeName] - } - else - { - if($localConfigManager -eq $null) - { - # save the localConfigManager which need to be fixed up to add additional manager info as embedded resources - $localConfigManager = $mofNodeHash[$mofTypeName] -replace 'MSFT_DSCMetaConfigurationV2', 'MSFT_DSCMetaConfiguration' - } - else - { - $errorMessage = $LocalizedData.MetaConfigurationHasMoreThanOneLocalConfigurationManager -f @($mofNode) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidMOFDefinition - Update-ConfigurationErrorCount - return - } - } - - $nodeDocCount++ - } - - if ($script:MetaConfigSetToPull -and (-not $script:SpecifiedV2DownloadManager)) - { - $errorMessage = $LocalizedData.PullModeWithoutConfigurationRepository - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId PullModeWithoutConfigurationRepository - Update-ConfigurationErrorCount - } - - if ($script:SpecifiedV2DownloadManager -and (-not $script:MetaConfigSetToPull)) - { - Write-Warning -Message $LocalizedData.ConfigurationRepositoryWithoutPullMode - } - - if($localConfigManager -eq $null) - { - # Print verbose message that empty settings definition is added. - $emptySettingVerboseMessage = $LocalizedData.MetaConfigurationSettingsMissing -f @($mofNode) - Write-Verbose -Message $emptySettingVerboseMessage - - # Assign default settings - $localConfigManager = "`ninstance of MSFT_DSCMetaConfiguration as `$MSFT_DSCMetaConfiguration1ref `n{`n};" - } - - # fixup to add embedded instances - $nodeDoc += Update-LocalConfigManager $localConfigManager $resourceManagers $reportManagers $downloadManagers $partialConfiguratons $signatureValidations - - - $nodeOutfile = "$ConfigurationOutputDirectory/$($mofNode).meta.mof" - - # add/update OMI_ConfigurationDocument of meta config - if ($nodeDoc -notmatch 'OMI_ConfigurationDocument') - { - if (Get-PSDefaultConfigurationDocument) - { - Write-Debug -Message " ${ConfigurationName}: Adding OMI_ConfigurationDocument from $(Get-PSDefaultConfigurationDocument)" - $nodeDoc += Get-PSDefaultConfigurationDocument - } - else - { - Write-Debug -Message " ${ConfigurationName}: Adding missing OMI_ConfigurationDocument element to the document" - if($Script:NodesPasswordEncrypted[$mofNode]) - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n{`n Version=`"2.0.0`";`n MinimumCompatibleVersion = `"$($script:PSMetaConfigDocumentInstVersionInfo['MinimumCompatibleVersion'])`";`n CompatibleVersionAdditionalProperties= $(Get-CompatibleVersionAddtionaPropertiesStr);`n Author=`"$([system.environment]::UserName)`";`n GenerationDate=`"$(Get-Date)`";`n GenerationHost=`"$([system.environment]::MachineName)`";`n ContentType=`"PasswordEncrypted`";`n Name=`"$(Get-PSTopConfigurationName)`";`n};" - } - else - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n{`n Version=`"2.0.0`";`n MinimumCompatibleVersion = `"$($script:PSMetaConfigDocumentInstVersionInfo['MinimumCompatibleVersion'])`";`n CompatibleVersionAdditionalProperties= $(Get-CompatibleVersionAddtionaPropertiesStr);`n Author=`"$([system.environment]::UserName)`";`n GenerationDate=`"$(Get-Date)`";`n GenerationHost=`"$([system.environment]::MachineName)`";`n Name=`"$(Get-PSTopConfigurationName)`";`n};" - } - } - } - - # Fix up newlines to be CRLF - $nodeDoc = $nodeDoc -replace "`n", "`r`n" - - # todo: meta configuration might not be verifiable currently - $errMsg = Test-MofInstanceText $nodeDoc - if($errMsg) - { - $errorMessage = $LocalizedData.InvalidMOFDefinition -f @($mofNode, $errMsg) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidMOFDefinition - Update-ConfigurationErrorCount - $nodeOutfile = "$ConfigurationOutputDirectory/$($mofNode).meta.mof.error" - } - - if($nodeDocCount -gt 0) - { - # Write to a file only if no error was generated or we are writing to .mof.error file - if ($Script:PSConfigurationErrors -eq 0 -or $nodeOutfile.EndsWith('mof.error')) - { - $nodeDoc > $nodeOutfile - Get-ChildItem $nodeOutfile - } - } -} - -# fixup localConfigmanager to have embedded instance -function Update-LocalConfigManager -{ - param( - [string] - $localConfigManager, - [string] - $resourceManagers, - [string] - $reportManagers, - [string] - $downloadManagers, - [string] - $partialConfigurations, - [string] - $signatureValidations - ) - - $curlyPostion = $localConfigManager.LastIndexOf('}') - if($curlyPostion -gt 0) - { - $first = $localConfigManager.Substring(0, $curlyPostion) - if($resourceManagers) - { - $first += " ResourceModuleManagers = {`n" + $resourceManagers + " `n };`n" - } - - if($reportManagers) - { - $first += " ReportManagers = {`n" + $reportManagers + " `n };`n" - } - - if($downloadManagers) - { - $first += " ConfigurationDownloadManagers = {`n" + $downloadManagers + " `n };`n" - } - - #PartialConfigurations - if($partialConfigurations) - { - $first += " PartialConfigurations = {`n" + $partialConfigurations + " `n };`n" - } - if($signatureValidations) - { - $first += " SignatureValidations = {`n" + $signatureValidations + " `n };`n" - } - - $first += "};`n" - - $first - } -} - -function Get-MofInstanceName -{ - param( - [string] - $mofInstance - ) -} -# -# A function to write the MOF instance texts of a node to files -# -function Write-NodeMOFFile -{ - param( - [string] - $ConfigurationName, - - [string] - $mofNode, - - [System.Collections.Generic.Dictionary[string,string]] - $mofNodeHash - ) - - if ($script:MetaConfigSetToPull -and (-not $script:SpecifiedV1DownloadManagerName)) - { - $errorMessage = $LocalizedData.PullModeWithoutDownloadManager - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId PullModeWithoutDownloadManager - Update-ConfigurationErrorCount - } - - if ($script:SpecifiedV1DownloadManagerName -and (-not $script:MetaConfigSetToPull)) - { - Write-Warning -Message $LocalizedData.DownloadManagerWithoutPullMode - } - - # Set up prefix for both the configuration and metaconfiguration documents. - $nodeDoc = "/*`n@TargetNode='$mofNode'`n" + "@GeneratedBy=$([system.environment]::UserName)`n@GenerationDate=$(Get-Date)`n@GenerationHost=$([system.environment]::MachineName)`n*/`n" - $nodeMetaDoc = $nodeDoc - $nodeConfigurationDocument = $null - [int]$metaDocCount = 0 - [int]$nodeDocCount = 0 - - foreach($mofTypeName in $mofNodeHash.Keys) - { - if($mofTypeName -match 'MSFT_DSCMetaConfiguration') - { - $tempMetaDoc = $mofNodeHash[$mofTypeName] - $metaDocCount++ - break - } - } - - foreach($mofTypeName in $mofNodeHash.Keys) - { - if(($mofTypeName -notmatch 'MSFT_DSCMetaConfiguration')) - { - if(($metaDocCount -gt 0) -and ($tempMetaDoc -match [regex]::Escape($mofTypeName))) - { - $nodeMetaDoc += $mofNodeHash[$mofTypeName] - } - else - { - if($mofTypeName -match 'OMI_ConfigurationDocument') - { - $nodeConfigurationDocument = $mofNodeHash[$mofTypeName] - } - $nodeDoc += $mofNodeHash[$mofTypeName] - $nodeDocCount++ - } - } - } - - $nodeMetaDoc += $tempMetaDoc - - $nodeOutfile = "$ConfigurationOutputDirectory/$($mofNode).mof" - if($metaDocCount -gt 0) - { - $nodeMetaOutfile = "$ConfigurationOutputDirectory/$($mofNode).meta.mof" - # this meta config uses v1 schema so will not have v2 properties - if ($nodeConfigurationDocument) - { - Write-Debug -Message " ${ConfigurationName}: Adding OMI_ConfigurationDocument from the current node '$mofNode': $nodeConfigurationDocument" - $nodeMetaDoc += $nodeConfigurationDocument - } - elseif (Get-PSDefaultConfigurationDocument) - { - Write-Debug -Message " ${ConfigurationName}: Adding OMI_ConfigurationDocument from $(Get-PSDefaultConfigurationDocument)" - $nodeMetaDoc += Get-PSDefaultConfigurationDocument - } - else - { - Write-Debug -Message " ${ConfigurationName}: Adding missing OMI_ConfigurationDocument element to the document" - if($Script:NodesPasswordEncrypted[$mofNode]) - { - $nodeMetaDoc += "`ninstance of OMI_ConfigurationDocument`n{`n Version=`"2.0.0`";`n MinimumCompatibleVersion = `"1.0.0`";`n CompatibleVersionAdditionalProperties= $(Get-CompatibleVersionAddtionaPropertiesStr);`n Author=`"$([system.environment]::UserName)`";`n GenerationDate=`"$(Get-Date)`";`n GenerationHost=`"$([system.environment]::MachineName)`";`n ContentType=`"PasswordEncrypted`";`n Name=`"$(Get-PSTopConfigurationName)`";`n};" - } - else - { - $nodeMetaDoc += "`ninstance of OMI_ConfigurationDocument`n{`n Version=`"2.0.0`";`n MinimumCompatibleVersion = `"1.0.0`";`n CompatibleVersionAdditionalProperties= $(Get-CompatibleVersionAddtionaPropertiesStr);`n Author=`"$([system.environment]::UserName)`";`n GenerationDate=`"$(Get-Date)`";`n GenerationHost=`"$([system.environment]::MachineName)`";`n Name=`"$(Get-PSTopConfigurationName)`";`n};" - } - } - } - - if ($nodeDoc -notmatch 'OMI_ConfigurationDocument') - { - if (Get-PSDefaultConfigurationDocument) - { - Write-Debug -Message " ${ConfigurationName}: Adding OMI_ConfigurationDocument from $(Get-PSDefaultConfigurationDocument)" - $nodeDoc += Get-PSDefaultConfigurationDocument - } - else - { - Write-Debug -Message " ${ConfigurationName}: Adding missing OMI_ConfigurationDocument element to the document" - if($Script:NodesPasswordEncrypted[$mofNode]) - { - if($nodeDoc.Contains("PsDscRunAsCredential")) - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n - {`n Version=`"2.0.0`";`n - MinimumCompatibleVersion = `"2.0.0`";`n - CompatibleVersionAdditionalProperties= {`"Omi_BaseResource:ConfigurationName`"};`n - Author=`"$([system.environment]::UserName)`";`n - GenerationDate=`"$(Get-Date)`";`n - GenerationHost=`"$([system.environment]::MachineName)`";`n - ContentType=`"PasswordEncrypted`";`n - Name=`"$(Get-PSTopConfigurationName)`";`n - };" - } - else - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n - {`n Version=`"2.0.0`";`n - MinimumCompatibleVersion = `"1.0.0`";`n - CompatibleVersionAdditionalProperties= {`"Omi_BaseResource:ConfigurationName`"};`n - Author=`"$([system.environment]::UserName)`";`n - GenerationDate=`"$(Get-Date)`";`n - GenerationHost=`"$([system.environment]::MachineName)`";`n - ContentType=`"PasswordEncrypted`";`n - Name=`"$(Get-PSTopConfigurationName)`";`n - };" - } - } - else - { - if($nodeDoc.Contains("PsDscRunAsCredential")) - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n - {`n Version=`"2.0.0`";`n - MinimumCompatibleVersion = `"2.0.0`";`n - CompatibleVersionAdditionalProperties= {`"Omi_BaseResource:ConfigurationName`"};`n - Author=`"$([system.environment]::UserName)`";`n - GenerationDate=`"$(Get-Date)`";`n - GenerationHost=`"$([system.environment]::MachineName)`";`n - Name=`"$(Get-PSTopConfigurationName)`";`n - };" - } - else - { - $nodeDoc += "`ninstance of OMI_ConfigurationDocument`n - {`n Version=`"2.0.0`";`n - MinimumCompatibleVersion = `"1.0.0`";`n - CompatibleVersionAdditionalProperties= {`"Omi_BaseResource:ConfigurationName`"};`n - Author=`"$([system.environment]::UserName)`";`n - GenerationDate=`"$(Get-Date)`";`n - GenerationHost=`"$([system.environment]::MachineName)`";`n - Name=`"$(Get-PSTopConfigurationName)`";`n - };" - } - } - } - } - # Fix up newlines to be CRLF - $nodeDoc = $nodeDoc -replace "`n", "`r`n" - - $errMsg = Test-MofInstanceText $nodeDoc - if($errMsg) - { - $errorMessage = $LocalizedData.InvalidMOFDefinition -f @($mofNode, $errMsg) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidMOFDefinition - Update-ConfigurationErrorCount - $nodeOutfile = "$ConfigurationOutputDirectory/$($mofNode).mof.error" - } - - if($nodeDocCount -gt 0) - { - # Write to a file only if no error was generated or we are writing to .mof.error file - if ($Script:PSConfigurationErrors -eq 0 -or $nodeOutfile.EndsWith('mof.error')) - { - $nodeDoc > $nodeOutfile - Get-ChildItem $nodeOutfile - } - } - - if($nodeMetaDoc -match 'MSFT_DSCMetaConfiguration' -and $Script:PSConfigurationErrors -eq 0) - { - $nodeMetaDoc = $nodeMetaDoc -replace "`n", "`r`n" - $nodeMetaDoc > $nodeMetaOutfile - Get-ChildItem $nodeMetaOutfile - } -} - -# -# A function to make sure that only valid resources are referenced within a node. It -# operates off of the $Script:NodeResources dictionary. An empty dictionary is not -# considered an error since this function is called at both the node level and the configuration -# level. -# This function also expand the dependsOn to composite resources -# -function ValidateNodeResources -{ - Write-Debug -Message " Validating resource set for node: $(Get-PSCurrentConfigurationNode)" - $newNodeResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - if ($Script:NodeResources) - { - foreach ($resourceId in $Script:NodeResources.Keys) - { - Write-Debug -Message " Checking node $resourceId" - $newDependsOn = foreach ($requiredResource in $Script:NodeResources[$resourceId]) - { - # Skip resources that have no DependsOn. - if ($requiredResource) - { - Write-Debug -Message " > Checking for required node $requiredResource" - - if (-not $Script:NodeResources.ContainsKey($requiredResource)) - { - Write-Debug -Message " > trying expand for required node $requiredResource" - $expandedDependsOn = foreach($rId in $Script:NodeResources.keys) - { - if($rId.EndsWith($requiredResource, [System.StringComparison]::InvariantCultureIgnoreCase)) - { - $rId - } - } - - - if(-not $expandedDependsOn) - { - $errorMessage = $LocalizedData.RequiredResourceNotFound -f @($requiredResource, $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId RequiredResourceNotFound - Update-ConfigurationErrorCount - } - else - { - $expandedDependsOn - } - } - else - { - $requiredResource - } - } - } - - if($newDependsOn) - { - $newNodeResources[$resourceId] = $newDependsOn - } - } - - if($newNodeResources) - { - foreach($id in $newNodeResources.keys) - { - $Script:NodeResources[$id] = $newNodeResources[$id] - } - } - } - Write-Debug -Message " Validation complete for node: $(Get-PSCurrentConfigurationNode)" -} - -# -# A function to make sure that only valid resources are referenced within the resource without node. -# This function also expand the dependsOn to composite resources -# -function ValidateNoNameNodeResources -{ - Write-Debug -Message ' Validating resource set for resources in the default configuration' - $newNodeResources = New-Object -TypeName 'System.Collections.Generic.Dictionary[string,[string[]]]' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - if ($Script:NoNameNodesResources) - { - foreach ($resourceId in $Script:NoNameNodesResources.Keys) - { - Write-Debug -Message " Checking node $resourceId" - $newDependsOn = foreach ($requiredResource in $Script:NoNameNodesResources[$resourceId]) - { - # Skip resources that have no DependsOn. - if ($requiredResource) - { - Write-Debug -Message " > Checking for required node $requiredResource" - - if (-not $Script:NoNameNodesResources.ContainsKey($requiredResource)) - { - Write-Debug -Message " > trying expand for required node $requiredResource" - $expandedDependsOn = foreach($rId in $Script:NoNameNodesResources.keys) - { - if($rId.EndsWith($requiredResource, [System.StringComparison]::InvariantCultureIgnoreCase)) - { - $rId - } - } - - if(-not $expandedDependsOn) - { - # When Node name is not specified in the configuration, $NoNameNodesResources & $NodeResources list are same. - # Do not throw error here to avoid duplicate errors, these errors will be throw by ‘ValidateNodeResources’ when $NodeResources list will be validated. - if(-not $Script:NodeResources.ContainsKey($resourceId)) - { - $errorMessage = $LocalizedData.RequiredResourceNotFound -f @($requiredResource, $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId RequiredResourceNotFound - Update-ConfigurationErrorCount - } - } - else - { - $expandedDependsOn - } - } - else - { - $requiredResource - } - } - } - - if($newDependsOn) - { - $newNodeResources[$resourceId] = $newDependsOn - } - } - - if($newNodeResources) - { - foreach($id in $newNodeResources.keys) - { - $Script:NoNameNodesResources[$id] = $newNodeResources[$id] - } - } - } - Write-Debug -Message ' Validation complete for default resources.' -} - -# -# A function to make sure that only valid Manager are referenced within a node. It -# operates off of the $Script:NodeManager dictionary. -# An empty dictionary is not -# considered an error since this function is called at both the node level and the configuration -# level. -# -function ValidateNodeManager -{ - Write-Debug -Message " Validating manager set for node: $(Get-PSCurrentConfigurationNode)" - if ($Script:NodeManager) - { - foreach ($resourceId in $Script:NodeManager.Keys) - { - Write-Debug -Message " Checking node $resourceId" - $refManagers = $Script:NodeManager[$resourceId] - # Skip partial configuration that have no Manager. - if ($refManagers) - { - Write-Debug -Message " > Checking for required manager $refManagers" - - foreach ($refManager in $refManagers) - { - if (-not $Script:NodeResources.ContainsKey($refManager)) - { - $errorMessage = $LocalizedData.ReferencedManagerNotFound -f @($refManager, $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ReferencedManagerNotFound - Update-ConfigurationErrorCount - } - } - } - } - } - - if ($IsMetaConfig) - { - #region Reference check for SignatureValidationPolicy - $referencedSignaturePolicy = $null; - $nodeAliases = @{} - - if ($NoNameNodeInstanceAliases.Count -ne 0) - { - $nodeAliases = $NoNameNodeInstanceAliases - } - else - { - $nodeAliases = $NodeInstanceAliases[$Node] - } - $metaConfigReferenceId = $nodeAliases.Keys | Where-Object -FilterScript {$_ -like '$MSFT_DSCMetaConfiguration*'} - # If there is no setting block defined. - if(!$metaConfigReferenceId) {return} - $v2MetaConfigReference = $nodeAliases.Item($metaConfigReferenceId) - - # Check if user specified the signature policy in the setting block. - $signatrueValidationIsSpecified = $v2MetaConfigReference -match 'SignatureValidationPolicy[ ]*=' - if ($signatrueValidationIsSpecified) - { - $referencedSignaturePolicyMatches = $v2MetaConfigReference -match '\[SignatureValidation\][^"]+' - if ($referencedSignaturePolicyMatches) - { - $referencedSignaturePolicy = $Matches[0] - } - else - { - $errorMessage = $LocalizedData.IncorrectSignatureValidationPolicyFormat - $exception = New-Object -TypeName System.ArgumentException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidArgument -ErrorId IncorrectSignatureValidationPolicyFormat - Update-ConfigurationErrorCount - } - - # If there is a referenced policy ensure that its value matches one of the defined signature validation resources. - if ($referencedSignaturePolicy) - { - if (-not $Script:NodeResources.ContainsKey($referencedSignaturePolicy)) - { - $errorMessage = $LocalizedData.ReferencedPolicyNotDefined -f @($referencedSignaturePolicy) - $exception = New-Object -TypeName System.ArgumentException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidArgument -ErrorId ReferencedPolicyNotDefined - Update-ConfigurationErrorCount - } - } - } - } - #endregion - - Write-Debug -Message " Validation complete for node: $(Get-PSCurrentConfigurationNode)" -} - -# -# A function to make sure that only valid resource source are referenced within a node. It -# operates off of the $Script:NodeResourceSource dictionary. -# An empty dictionary is not -# considered an error since this function is called at both the node level and the configuration -# level. -# -function ValidateNodeResourceSource -{ - Write-Debug -Message " Validating resource source set for node: $(Get-PSCurrentConfigurationNode)" - if ($Script:NodeResourceSource) - { - foreach ($resourceId in $Script:NodeResourceSource.Keys) - { - Write-Debug -Message " Checking node $resourceId" - $refResourceSources = $Script:NodeResourceSource[$resourceId] - # Skip partial configuration that have no Manager. - if ($refResourceSources) - { - Write-Debug -Message " > Checking for required manager $refManagers" - - foreach ($refResourceSource in $refResourceSources) - { - if (-not $Script:NodeResources.ContainsKey($refResourceSource)) - { - $errorMessage = $LocalizedData.ReferencedResourceSourceNotFound -f @($refResourceSource, $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ReferencedResourceSourceNotFound - Update-ConfigurationErrorCount - } - } - } - } - } - Write-Debug -Message " Validation complete for node: $(Get-PSCurrentConfigurationNode)" -} - -# -# A function to make sure that exclusive resources among partial configurations do not conflict with each other -# it is already of format modulename\resourcName or modulename\* or resourceName -# It also validate they exist -function ValidateNodeExclusiveResources -{ - Write-Debug -Message " Validating exclusive resources for node: $(Get-PSCurrentConfigurationNode)" - if ($Script:NodeExclusiveResources) - { - # map will be of format {moduleName, {Id=ResourceId; ContainsAll = $true/$false; Resources=@('r1','r2'...)}} - $ModuleBasedExclusiveResourceMap = @{} - # map for resource that doesn't have module - $NoModuleExclusiveResourceMap = @{} - - foreach ($resourceId in $Script:NodeExclusiveResources.Keys) - { - Write-Debug -Message " Checking node $resourceId" - - # Remove duplicate entries from exclusive Resource array - $exclusiveResourceList = $Script:NodeExclusiveResources[$resourceId] | select -uniq - - foreach($refResource in $exclusiveResourceList) - { - $resourceSegs = $refResource -split '\\' - - if($resourceSegs.Length -eq 2) - { - if($ModuleBasedExclusiveResourceMap[$resourceSegs[0]] -eq $null) - { - $ModuleBasedExclusiveResourceMap[$resourceSegs[0]] = @{ - Id = $resourceId - } - if($resourceSegs[1] -eq '*') - { - $ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['ContainsAll'] = $true - } - else - { - $ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['ContainsAll'] = $false - $ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['Resources'] = @($resourceSegs[1]) - } - } - else - { - # 'Module\Resource' in PartialConfiguration1 conflicts with 'Module\*' in PartialConfiguration2 - # or 'Module\*' in PartialConfiguration1 conflicts with 'Module\Resource' in PartialConfiguration2 - if(($resourceSegs[1] -eq '*') -or $ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['ContainsAll']) - { - $errorMessage = $LocalizedData.ConflictInExclusiveResources -f @($ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['Id'], $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConflictInExclusiveResources - Update-ConfigurationErrorCount - break - } - # 'Module\Resource' in PartialConfiguration1 conflicts with 'Module\Resource' in PartialConfiguration2 - # or 'Module\Resource' in PartialConfiguration1 conflicts with 'Resource' in PartialConfiguration2 - elseif($ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['Resources'] -icontains $resourceSegs[1] ` - -or $NoModuleExclusiveResourceMap[$resourceSegs[1]] -ne $null) - { - $errorMessage = $LocalizedData.ConflictInExclusiveResources -f @($ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['Id'], $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConflictInExclusiveResources - Update-ConfigurationErrorCount - break - } - else - { - $ModuleBasedExclusiveResourceMap[$resourceSegs[0]]['Resources'] += @($resourceSegs[1]) - } - } - } - else # no module name, normally means binary resource - { - if($NoModuleExclusiveResourceMap[$refResource] -eq $null) - { - $resourceFound = $false - $ModuleBasedExclusiveResourceMap.GetEnumerator() | % { - if($_.Value.Resources -icontains $refResource) { - $resourceFound = $true - $ConflictingPartialConfigurationId = $_.Value.Id - } - } - - # 'Resource' in PartialConfiguration1 conflicts with 'Module\Resource' in PartialConfiguration2 - if($resourceFound){ - $errorMessage = $LocalizedData.ConflictInExclusiveResources -f @($ConflictingPartialConfigurationId, $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConflictInExclusiveResources - Update-ConfigurationErrorCount - break - } - - $NoModuleExclusiveResourceMap[$refResource] = @{ - Id = $resourceId - } - } - # 'Resource' in PartialConfiguration1 conflicts with 'Resource' in PartialConfiguration2 - else - { - $errorMessage = $LocalizedData.ConflictInExclusiveResources -f @($NoModuleExclusiveResourceMap[$refResource]['Id'], $resourceId) - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId ConflictInExclusiveResources - Update-ConfigurationErrorCount - break - } - } - } - } - } - Write-Debug -Message " Validation complete for node: $(Get-PSCurrentConfigurationNode)" -} - -# -# A function to make sure that only valid resources are referenced within a node. It -# operates off of the $Script:NodeResources dictionary. An empty dictionary is not -# considered an error since this function is called at both the node level and the configuration -# level. -# it uses Tarjan strongly connected component algorithms -# -function ValidateNoCircleInNodeResources -{ - Write-Debug -Message " Validating resource set for node: $(Get-PSCurrentConfigurationNode)" - [int] $script:CircleIndex = 0 - [System.Collections.Generic.Stack[string]] $script:resourceIdStack = - New-Object -TypeName 'System.Collections.Generic.Stack[string]' - [hashtable] $script:resourceIndex = @{} - [hashtable] $script:resourceLowIndex = @{} - [int] $script:ComponentDepth = 0 - [int] $script:MaxComponentDepth = 1024 - - if ($Script:NodeResources) - { - foreach ($resourceId in $Script:NodeResources.Keys) - { - if(($Script:NodeResources[$resourceId] -ne $null) -and $Script:NodeResources[$resourceId].Contains($resourceId)) - { - $errorMessage = $LocalizedData.DependsOnLoopDetected -f "$resourceId->$resourceId" - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId DependsOnLoopDetected - Update-ConfigurationErrorCount - } - - if($resourceIndex[$resourceId] -eq $null) - { - $script:ComponentDepth = 0 - StrongConnect($resourceId) - } - } - } - Write-Debug -Message " Validation circular reference completed for node: $(Get-PSCurrentConfigurationNode)" -} - -function StrongConnect -{ - param ([string]$resourceId) - - $script:resourceIndex[$resourceId] = $script:CircleIndex - $script:resourceLowIndex[$resourceId] = $script:CircleIndex - $script:CircleIndex++ - $script:ComponentDepth++ - if($script:ComponentDepth -gt $script:MaxComponentDepth) - { - $errorMessage = $LocalizedData.DependsOnLinkTooDeep -f $script:MaxComponentDepth - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId DependsOnLinkTooDeep - Update-ConfigurationErrorCount - } - - $script:resourceIdStack.Push($resourceId) - - foreach ($requiredResource in $Script:NodeResources[$resourceId]) - { - Write-Debug -Message " > Checking for required node $requiredResource" - #$requiredResource is not visited yet - if(($requiredResource -ne $null) -and ($script:resourceIndex[$requiredResource] -eq $null)) - { - StrongConnect($requiredResource) - $script:resourceLowIndex[$resourceId] = [math]::Min($script:resourceLowIndex[$resourceId], $script:resourceLowIndex[$requiredResource]) - } - elseif($script:resourceIdStack -Contains $requiredResource) - { - $script:resourceLowIndex[$resourceId] = [math]::Min($script:resourceLowIndex[$resourceId], $script:resourceIndex[$requiredResource]) - } - } - - if($script:resourceIndex[$resourceId] -eq $script:resourceLowIndex[$resourceId]) - { - $resourceCount = 0 - $circularLinks = '' - do - { - $a = $script:resourceIdStack.Pop() - $circularLinks += "->$a" - $resourceCount++ - } - while($a -ne $resourceId) - - if($resourceCount -gt 1) - { - $errorMessage = $LocalizedData.DependsOnLoopDetected -f $circularLinks - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId DependsOnLoopDetected - Update-ConfigurationErrorCount - } - } -} - -# -# Returns any validation error messages -# -function Test-MofInstanceText -{ - param ( - [Parameter(Mandatory)] - $instanceText - ) - - # Ignore empty instances... - if ( $instanceText) - { - try - { - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ValidateInstanceText($instanceText) - } - catch [System.Management.Automation.MethodInvocationException] - { - # Return the exception message from the inner most ErrorRecord - $ErrorRecord = Get-InnerMostErrorRecord $_ - $ErrorRecord.Exception.Message - } - } -} - -# -# Encrypt a password using CMS -# -function Get-EncryptedPassword -{ - param ( - [Parameter()] - $Value = $null - ) - - $cert = $null - - - if($Node -and $selectedNodesData) - { - if($selectedNodesData -is [array]) - { - foreach($target in $selectedNodesData) - { - # Node name should be exactly the same as one defined in AllNodes - # -eq does case in sensitive comparison - if($target['NodeName'] -and $target['NodeName'] -eq $Node) - { - $currentNode = $target - } - } - } - else - { - $currentNode = $selectedNodesData - } - } - # where user need to specify properties for resources not in a node, - # they can do it through localhost nodeName in $allNodes - elseif($allnodes -and $allnodes.AllNodes) - { - foreach($target in $allnodes.AllNodes) - { - if($target['NodeName'] -and $target['NodeName'] -eq 'localhost') - { - $currentNode = $target - } - } - } - - if($currentNode) - { - # if Certificate is provided, it override PSDscAllowPlainTextPassword : bug 565167 - # CertificateID is currently assumed to be the 'thumbprint' from the certificate - # Protect-CmsMessage [-To] takes actual cert, path to cert file, path to a directory contains cert, thumbprint or subject name of cert - # we only support cert file and thumbprint as before now - $certificateid = $currentNode['CertificateID'] - - # If there is no certificateid defined, just return the original value... - if ( -not $certificateid) - { - # CertificateFile is the public key file - $certificatefile = $currentNode['CertificateFile'] - - if ( -not $certificatefile) - { - return $Value - } - else - { - $CmsMessageRecipient = $certificatefile - } - } - else - { - $CmsMessageRecipient = $certificateid - } - } - - if($CmsMessageRecipient -and $Value -is [string]) - { - # Encrypt using the public key - $encMsg =Protect-CmsMessage -To $CmsMessageRecipient -Content $Value - - # Reverse bytes for unmanaged decryption - #[Array]::Reverse($encbytes) - - #$encMsg = $encMsg -replace '-----BEGIN CMS-----','' - #$encMsg = $encMsg -replace "`n",'' - #$encMsg = $encMsg -replace '-----END CMS-----','' - - return $encMsg - } - else - { - # passwords should be some type of string so this is probably an error but pass - # back the incoming value. Also if there is no key, then we just pass through the - # password as is. - - $Value - } -} - - -# -# Retrieve a public key that can be used for encryption. Matching on thumbprint -# -function Get-PublicKeyFromStore -{ - param( - [Parameter(Mandatory)] - [string] - $certificateid - ) - - $cert = $null - - foreach($certIndex in Get-ChildItem -Path cert:\LocalMachine\My) - { - if($certIndex.Thumbprint -match $certificateid) - { - $cert = $certIndex - break - } - } - - if(-not $cert) - { - $errorMessage = $($LocalizedData.CertificateStoreReadError) -f $certificateid - ThrowError -ExceptionName 'System.InvalidOperationException' -ExceptionMessage $errorMessage -ExceptionObject $certificateid -ErrorId 'InvalidPathSpecified' -ErrorCategory InvalidOperation - } - else - { - $cert - } -} - -# -# Retrieve a public key that can be used for encryption. Certificate loaded from -# a certificate file -# -function Get-PublicKeyFromFile -{ - param( - [Parameter(Mandatory)] - [string] - $certificatefile - ) - - try - { - $cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2 - - if($cert) - { - $cert.Import($certificatefile) - $cert - } - } - catch - { - $errorMessage = $($LocalizedData.CertificateFileReadError) -f $certificatefile - ThrowError -ExceptionName 'System.InvalidOperationException' -ExceptionMessage $errorMessage -ExceptionObject $certificatefile -ErrorId 'InvalidPathSpecified' -ErrorCategory InvalidOperation - } -} - - -########################################################### -# -# Checksum generation functions. -# -########################################################### - -#----------------------------------------------------------------------------------------------------- -# New-DscChecksum cmdlet is used to create corresponding checksum files for a specified file or folder -#----------------------------------------------------------------------------------------------------- -function New-DscChecksum -{ - [CmdletBinding(SupportsShouldProcess = $true, HelpUri = 'https://go.microsoft.com/fwlink/?LinkId=403986')] - param( - [Parameter(Mandatory)] - [Alias('ConfigurationPath')] - [ValidateNotNullOrEmpty()] - [string[]] - $Path, - - [Parameter()] - [ValidateNotNullOrEmpty()] - [string] - $OutPath = $null, - - [switch] - $Force - ) - - # Check validity of all configuration paths specified, throw if any of them is invalid - for ($i = 0 ; $i -lt $Path.Length ; $i++) - { - if (!(Test-Path -Path $Path[$i])) - { - $errorMessage = $LocalizedData.InvalidConfigPath -f $Path[$i] - ThrowError -ExceptionName 'System.ArgumentException' -ExceptionMessage $errorMessage -ExceptionObject $Path[$i] -ErrorId 'InvalidConfigurationPath' -ErrorCategory InvalidArgument - } - } - - # If an OutPath is specified, handle its creation and error conditions - if ($OutPath) - { - # If and invalid path syntax is specified in $Outpath, throw - if(([System.IO.Path]::GetInvalidPathChars() | ForEach-Object -Process { - $OutPath.Contains($_) - } - ).IndexOf($true)[0] -ne -1) - { - $errorMessage = $LocalizedData.InvalidOutpath -f $OutPath - ThrowError -ExceptionName 'System.ArgumentException' -ExceptionMessage $errorMessage -ExceptionObject $OutPath -ErrorId 'InvalidOutPath' -ErrorCategory InvalidArgument - } - - # If the specified $Outpath conflicts with an existing file, throw - if(Test-Path -Path $OutPath -PathType Leaf) - { - $errorMessage = $LocalizedData.OutpathConflict -f $OutPath - ThrowError -ExceptionName 'System.ArgumentException' -ExceptionMessage $errorMessage -ExceptionObject $OutPath -ErrorId 'InvalidOutPath' -ErrorCategory InvalidArgument - } - - # IF THE CONTROL REACHED HERE, $OutPath IS A VALID DIRECTORY PATH WHICH HAS NO CONFLICT WITH AN EXISTING FILE - - # If $OutPath doesn't exist, create it - if(!(Test-Path -Path $OutPath)) - { - $null = New-Item -Path $OutPath -ItemType Directory - } - - $OutPath = (Resolve-Path $OutPath).ProviderPath - } - - # Retrieve all valid configuration files at the specified $Path - $allConfigFiles = $Path | ForEach-Object -Process { - (Get-ChildItem -Path $_ -Recurse | Where-Object -FilterScript { - $_.Extension -eq '.mof' -or $_.Extension -eq '.zip' - } - ) - } - - # If no valid config file was found, log this and return - if ($allConfigFiles.Length -eq 0) - { - Write-Log -Message $LocalizedData.NoValidConfigFileFound - - return - } - - # IF THE CONTROL REACHED HERE, VALID CONFIGURATION FILES HAVE BEEN FOUND AND WE NEED TO CALCULATE THEIR HASHES - - foreach ($file in $allConfigFiles) - { - $fileOutpath = "$($file.FullName).checksum" - if ($OutPath) - { - $fileOutpath = "$OutPath\$($file.Name).checksum" - } - - # If the Force parameter was not specified and the hash file already exists for the current file, log this, and skip this file - if (!$Force -and (Get-Item -Path $fileOutpath -ErrorAction SilentlyContinue)) - { - Write-Log -Message ($LocalizedData.CheckSumFileExists -f $fileOutpath) - continue - } - - # Devise appropriate message - $message = $LocalizedData.CreateChecksumFile -f $fileOutpath - if (Test-Path -Path $fileOutpath) - { - $message = $LocalizedData.OverwriteChecksumFile -f $fileOutpath - } - - # Finally, if the hash file doesn't exist already or -Force has been specified, then output the corresponding hash file - if ($pscmdlet.ShouldProcess($message, $null, $null)) - { - [String]$checksum = (Get-FileHash -Path $file.FullName -Algorithm SHA256).Hash - - WriteFile -Path $fileOutpath -Value $checksum - } - } -} -Export-ModuleMember -Function New-DscChecksum - - -#------------------------------------ -# Utility to throw an error/exception -#------------------------------------ -function ThrowError -{ - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ExceptionName, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $ExceptionMessage, - - [System.Object] - $ExceptionObject, - - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $errorId, - - [parameter(Mandatory = $true)] - [ValidateNotNull()] - [System.Management.Automation.ErrorCategory] - $errorCategory - ) - - $exception = New-Object $ExceptionName $ExceptionMessage - $ErrorRecord = New-Object -TypeName System.Management.Automation.ErrorRecord -ArgumentList $exception, $errorId, $errorCategory, $ExceptionObject - throw $ErrorRecord -} - -#---------------------------------------- -# Utility to write WhatIf or Verbose logs -#---------------------------------------- -function Write-Log -{ - [CmdletBinding(SupportsShouldProcess = $true)] - param - ( - [parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [System.String] - $message - ) - - if ($pscmdlet.ShouldProcess($message, $null, $null)) - { - Write-Verbose -Message $message - } -} - -# WriteFile is a helper function used to write the content to the file -function WriteFile -{ - param( - [parameter(Mandatory)] - [string] - $Value, - - [parameter(Mandatory)] - [string] - $Path) - - try - { - [system.io.streamwriter]$stream = New-Object -TypeName system.io.StreamWriter -ArgumentList ($Path, $false) - try - { - [void] $stream.Write($Value) - } - finally - { - if ($stream) - { - $stream.Close() - } - } - } - catch - { - $errorMessage = $LocalizedData.FileReadError -f $Path - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidPathSpecified - Update-ConfigurationErrorCount - } -} - -# -# ReadEnvironmentFile imports the contents of a -# file as ConfigurationData -# -function ReadEnvironmentFile -{ - param( - [parameter(Mandatory)] - [string] - $FilePath) - - try - { - $resolvedPath = Resolve-Path $FilePath - } - catch - { - $errorMessage = $LocalizedData.FilePathError -f $FilePath - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidPathSpecified - Update-ConfigurationErrorCount - } - - try - { - $content = Get-Content $resolvedPath -Raw - $sb = [scriptblock]::Create($content) - $sb.CheckRestrictedLanguage($null, $null, $true) - $sb.Invoke() - } - catch - { - $errorMessage = $LocalizedData.EnvironmentContentError -f $FilePath - $exception = New-Object -TypeName System.InvalidOperationException -ArgumentList $errorMessage - Write-Error -Exception $exception -Message $errorMessage -Category InvalidOperation -ErrorId InvalidEnvironmentContentSpecified - Update-ConfigurationErrorCount - } -} - -function Get-DSCResourceModules -{ - $listPSModuleFolders = $env:PSModulePath.Split(";") - $dscModuleFolderList = [System.Collections.Generic.HashSet[System.String]]::new() - - foreach ($folder in $listPSModuleFolders) - { - $folder = $folder.Trim() - if (!(Test-Path $folder)) - { - continue - } - - foreach($moduleFolder in Get-ChildItem $folder -Directory) - { - $addModule = $false - - $dscFolders = Get-childitem "$($moduleFolder.FullName)\DscResources","$($moduleFolder.FullName)\*\DscResources" -ErrorAction Ignore - if($dscFolders -ne $null) - { - $addModule = $true - } - - if(-not $addModule) - { - foreach($psd1 in Get-ChildItem -Recurse -Filter "$($moduleFolder.Name).psd1" -Path $moduleFolder.fullname -Depth 2) - { - $containsDSCResource = select-string -LiteralPath $psd1 -pattern '^(?!#).*\bDscResourcesToExport\b.*' - if($containsDSCResource -ne $null) - { - $addModule = $true - } - } - } - - if($addModule) - { - $dscModuleFolderList.Add($moduleFolder.Name) - } - } - } - - $dscModuleFolderList -} - -########################################################### -# Get-DSCResource -########################################################### - -# -# Gets DSC resources on the machine. Allows to filter on a particular resource. -# It parses all the resources defined in the schema.mof file and also the composite -# resources defined or imported from PowerShell modules -# -function Get-DscResource -{ - [CmdletBinding(HelpUri = 'https://go.microsoft.com/fwlink/?LinkId=403985')] - [OutputType('Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo[]')] - [OutputType('string[]')] - param ( - [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] - [string[]] - $Name, - [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] - [ValidateNotNullOrEmpty()] - [Object] - $Module, - - [Parameter()] - [switch] - $Syntax - ) - - Begin - { - $initialized = $false - $ModuleString = $null - Write-Progress -Id 1 -Activity $LocalizedData.LoadingDefaultCimKeywords - - $keywordErrors = New-Object -TypeName 'System.Collections.ObjectModel.Collection[System.Exception]' - - # Load the default Inbox providers (keyword) in cache, also allow caching the resources from multiple versions of modules. - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::LoadDefaultCimKeywords($keywordErrors, $true) - - foreach($ex in $keywordErrors) - { - Write-Error -Exception $ex - if($ex.InnerException) - { - Write-Error -Exception $ex.InnerException - } - } - - Write-Progress -Id 2 -Activity $LocalizedData.GettingModuleList - - $initialized = $true - - if($Module) #Pick from the specified module if there's one - { - $moduleSpecificName = [System.Management.Automation.LanguagePrimitives]::ConvertTo($Module,[Microsoft.PowerShell.Commands.ModuleSpecification]) - $modules = Get-Module -ListAvailable -FullyQualifiedName $moduleSpecificName - if($Module -is [System.Collections.Hashtable]) - { - $ModuleString = $Module.ModuleName - } - else - { - $ModuleString = $Module - } - } - else - { - $modules = Get-Module -ListAvailable -Name (Get-DSCResourceModules) - } - - foreach ($mod in $modules) - { - if ($mod.ExportedDscResources.Count -gt 0) - { - $null = ImportClassResourcesFromModule -Module $mod -Resources * -functionsToDefine $functionsToDefine - } - - $dscResources = Join-Path -Path $mod.ModuleBase -ChildPath 'DSCResources' - if(Test-Path $dscResources) - { - foreach ($resource in Get-ChildItem -Path $dscResources -Directory -Name) - { - $null = ImportCimAndScriptKeywordsFromModule -Module $mod -Resource $resource -functionsToDefine $functionsToDefine - } - } - } - - $Resources = @() - } - - Process - { - try - { - if ($Name -ne $null) - { - $nameMessage = $LocalizedData.GetDscResourceInputName -f @('Name', [system.string]::Join(', ', $Name)) - Write-Verbose -Message $nameMessage - } - if($Module -and !$modules) - { - #Return if no modules were found with the required specification - Write-Warning -Message $LocalizedData.NoModulesPresent - return - } - $ignoreResourceParameters = @('InstanceName', 'OutputPath', 'ConfigurationData') + [System.Management.Automation.Cmdlet]::CommonParameters + [System.Management.Automation.Cmdlet]::OptionalCommonParameters - - $patterns = GetPatterns $Name - - Write-Progress -Id 3 -Activity $LocalizedData.CreatingResourceList - - # Get resources for CIM cache - $keywords = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::GetCachedKeywords() | Where-Object -FilterScript { - (!$_.IsReservedKeyword) -and ($_.ResourceName -ne $null) -and !(IsHiddenResource $_.ResourceName) -and (![bool]$Module -or ($_.ImplementingModule -like $ModuleString)) - } - - $Resources += $keywords | - ForEach-Object -Process { - GetResourceFromKeyword -keyword $_ -patterns $patterns -modules $modules - } | - Where-Object -FilterScript { - $_ -ne $null - } - - # Get composite resources - $Resources += Get-Command -CommandType Configuration | - ForEach-Object -Process { - GetCompositeResource $patterns $_ $ignoreResourceParameters -modules $modules - } | - Where-Object -FilterScript { - $_ -ne $null -and (![bool]$ModuleString -or ($_.Module -like $ModuleString)) -and - ($_.Path -and ((Split-Path -Leaf $_.Path) -eq "$($_.Name).schema.psm1")) - } - - # check whether all resources are found - CheckResourceFound $Name $Resources - } - catch - { - if ($initialized) - { - [System.Management.Automation.Language.DynamicKeyword]::Reset() - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ClearCache() - - $initialized = $false - } - - throw $_ - } - } - - End - { - $Resources = $Resources | Sort-Object -Property Module, Name - foreach ($resource in $Resources) - { - # return formatted string if required - if ($Syntax) - { - GetSyntax $resource | Write-Output - } - else - { - Write-Output -InputObject $resource - } - } - - if ($initialized) - { - [System.Management.Automation.Language.DynamicKeyword]::Reset() - [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::ClearCache() - - $initialized = $false - } - } -} - -# -# Get DSC resoruce for a dynamic keyword -# -function GetResourceFromKeyword -{ - [OutputType('Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo')] - param ( - [Parameter(Mandatory)] - [System.Management.Automation.Language.DynamicKeyword] - $keyword, - [System.Management.Automation.WildcardPattern[]] - $patterns, - [Parameter(Mandatory)] - [System.Management.Automation.PSModuleInfo[]] - $modules - ) - - # Find whether $name follows the pattern - $matched = (IsPatternMatched $patterns $keyword.ResourceName) -or (IsPatternMatched $patterns $keyword.Keyword) - if ($matched -eq $false) - { - $message = $LocalizedData.ResourceNotMatched -f @($keyword.Keyword) - Write-Verbose -Message ($message) - return - } - else - { - $message = $LocalizedData.CreatingResource -f @($keyword.Keyword) - Write-Verbose -Message $message - } - - $resource = New-Object -TypeName Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo - - $resource.ResourceType = $keyword.ResourceName - - if ($keyword.ResourceName -ne $keyword.Keyword) - { - $resource.FriendlyName = $keyword.Keyword - } - - $resource.Name = $keyword.Keyword - - $schemaFiles = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::GetFileDefiningClass($keyword.ResourceName) - if ($schemaFiles.Count) - { - # Find the correct schema file that matches module name and version - # if same module/version is installed in multiple locations, then pick the first schema file. - foreach ($schemaFileName in $schemaFiles){ - $moduleInfo = GetModule $modules $schemaFileName; - if ($moduleInfo.Name -eq $keyword.ImplementingModule -and $moduleInfo.Version -eq $keyword.ImplementingModuleVersion){ - break - } - } - - # if the class is not a resource we will ignore it except if it is DSC inbox resource. - if(-not $schemaFileName.StartsWith("$env:windir\system32\configuration",[stringComparison]::OrdinalIgnoreCase)) - { - $classesFromSchema = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::GetCachedClassByFileName($schemaFileName) - if( $classesFromSchema -ne $null) - { - # check if the resource is proper DSC resource that always derives from OMI_BaseResource. - $schemaToProcess = $classesFromSchema | ForEach-Object -Process { - if(($_.CimSystemProperties.ClassName -ieq $keyword.ResourceName) -and ($_.CimSuperClassName -ieq 'OMI_BaseResource')) - { - $_ - } - } - if( $schemaToProcess -eq $null) - { - return - } - } - } - - $message = $LocalizedData.SchemaFileForResource -f @($schemaFileName) - Write-Verbose -Message $message - - $resource.Module = $moduleInfo - $resource.Path = GetImplementingModulePath $schemaFileName - $resource.ParentPath = Split-Path $schemaFileName - } - else - { - $Module = $modules | Where-Object -FilterScript { - $_.Name -eq $keyword.ImplementingModule -and - $_.Version -eq $keyword.ImplementingModuleVersion - } - - # Get cim classes defined under $Module - $cachedClasses = [Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache]::GetCachedClassesForModule($Module) - - # Check if it is a DSC Resource that is always derived from OMI_BaseResource class. - $isDscResource = $false - foreach($cachedClasse in $cachedClasses) { - if($cachedClasse.CimSystemProperties.ClassName -ieq $keyword.Keyword -and ($cachedClasse.CimSuperClassName -ieq 'OMI_BaseResource')) - { - $isDscResource = $true - break - } - } - if(-not $isDscResource) - { - return - } - - if ($Module -and $Module.ExportedDscResources -contains $keyword.Keyword) - { - $resource.Module = $Module - $resource.Path = $Module.Path - $resource.ParentPath = Split-Path -Path $Module.Path - } - } - - if ([system.string]::IsNullOrEmpty($resource.Path) -eq $false) - { - $resource.ImplementedAs = [Microsoft.PowerShell.DesiredStateConfiguration.ImplementedAsType]::PowerShell - } - else - { - $resource.ImplementedAs = [Microsoft.PowerShell.DesiredStateConfiguration.ImplementedAsType]::Binary - } - - if ($resource.Module -ne $null) - { - $resource.CompanyName = $resource.Module.CompanyName - } - - # add properties - $keyword.Properties.Values | ForEach-Object -Process { - AddDscResourceProperty $resource $_ - } - - # sort properties - $updatedProperties = $resource.Properties | Sort-Object -Property @{ - expression = 'IsMandatory' - Descending = $true - }, @{ - expression = 'Name' - Ascending = $true - } - $resource.UpdateProperties($updatedProperties) - - return $resource -} - -# -# Gets composite resource -# -function GetCompositeResource -{ - [OutputType('Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo')] - param ( - [System.Management.Automation.WildcardPattern[]] - $patterns, - [Parameter(Mandatory)] - [System.Management.Automation.ConfigurationInfo] - $configInfo, - $ignoreParameters, - [Parameter(Mandatory)] - [System.Management.Automation.PSModuleInfo[]] - $modules - ) - - # Find whether $name follows the pattern - $matched = IsPatternMatched $patterns $configInfo.Name - if ($matched -eq $false) - { - $message = $LocalizedData.ResourceNotMatched -f @($configInfo.Name) - Write-Verbose -Message ($message) - - return $null - } - else - { - $message = $LocalizedData.CreatingResource -f @($configInfo.Name) - Write-Verbose -Message $message - } - - $resource = New-Object -TypeName Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo - - $resource.ResourceType = $configInfo.Name - $resource.FriendlyName = $null - $resource.Name = $configInfo.Name - $resource.ImplementedAs = [Microsoft.PowerShell.DesiredStateConfiguration.ImplementedAsType]::Composite - - if ($configInfo.Module -ne $null) - { - $resource.Module = GetModule $modules $configInfo.Module.Path - if($resource.Module -eq $null) - { - $resource.Module = $configInfo.Module - } - $resource.CompanyName = $configInfo.Module.CompanyName - $resource.Path = $configInfo.Module.Path - $resource.ParentPath = Split-Path -Path $resource.Path - } - - # add properties - $configInfo.Parameters.Values | ForEach-Object -Process { - AddDscResourcePropertyFromMetadata $resource $_ $ignoreParameters - } - - return $resource -} - -# -# Adds property to a DSC resource -# -function AddDscResourceProperty -{ - param ( - [Parameter(Mandatory)] - [Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo] - $dscresource, - [Parameter(Mandatory)] - $property - ) - - $convertTypeMap = @{ - 'MSFT_Credential'='[PSCredential]'; - 'MSFT_KeyValuePair'='[HashTable]'; - 'MSFT_KeyValuePair[]'='[HashTable]' - } - - $ignoreProperties = @('ResourceId', 'ConfigurationName') - if ($ignoreProperties -contains $property.Name) - { - return - } - - $dscProperty = New-Object -TypeName Microsoft.PowerShell.DesiredStateConfiguration.DscResourcePropertyInfo - $dscProperty.Name = $property.Name - if ($convertTypeMap.ContainsKey($property.TypeConstraint)) - { - $type = $convertTypeMap[$property.TypeConstraint] - } - else - { - $Type = [System.Management.Automation.LanguagePrimitives]::ConvertTypeNameToPSTypeName($property.TypeConstraint) - if([string]::IsNullOrEmpty($Type)) - { - $Type = "[$($property.TypeConstraint)]" - } - } - - if ($property.ValueMap -ne $null) - { - $property.ValueMap.Keys | - Sort-Object | - ForEach-Object -Process { - $dscProperty.Values.Add($_) - } - } - - $dscProperty.PropertyType = $Type - $dscProperty.IsMandatory = $property.Mandatory - - $dscresource.Properties.Add($dscProperty) -} - -# -# Adds property to a DSC resource -# -function AddDscResourcePropertyFromMetadata -{ - param ( - [Parameter(Mandatory)] - [Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo] - $dscresource, - [Parameter(Mandatory)] - [System.Management.Automation.ParameterMetadata] - $parameter, - $ignoreParameters - ) - - if ($ignoreParameters -contains $parameter.Name) - { - return - } - - $dscProperty = New-Object -TypeName Microsoft.PowerShell.DesiredStateConfiguration.DscResourcePropertyInfo - $dscProperty.Name = $parameter.Name - - # adding [] in Type name to keep it in sync with the name returned from LanguagePrimitives.ConvertTypeNameToPSTypeName - $dscProperty.PropertyType = '[' +$parameter.ParameterType.Name + ']' - $dscProperty.IsMandatory = $parameter.Attributes.Mandatory - - $dscresource.Properties.Add($dscProperty) -} - -# -# Gets syntax for a DSC resource -# -function GetSyntax -{ - [OutputType('string')] - param ( - [Parameter(Mandatory)] - [Microsoft.PowerShell.DesiredStateConfiguration.DscResourceInfo] - $dscresource - ) - - $output = $dscresource.Name + " [String] #ResourceName`n" - $output += "{`n" - foreach ($property in $dscresource.Properties) - { - $output += ' ' - if ($property.IsMandatory -eq $false) - { - $output += '[' - } - - $output += $property.Name - - $output += ' = ' + $property.PropertyType + '' - - # Add possible values - if ($property.Values.Count -gt 0) - { - $output += '{ ' + [system.string]::Join(' | ', $property.Values) + ' }' - } - - if ($property.IsMandatory -eq $false) - { - $output += ']' - } - - $output += "`n" - } - - $output += "}`n" - - return $output -} - -# -# Checks whether a resource is found or not -# -function CheckResourceFound($names, $Resources) -{ - if ($names -eq $null) - { - return - } - - $namesWithoutWildcards = $names | Where-Object -FilterScript { - [System.Management.Automation.WildcardPattern]::ContainsWildcardCharacters($_) -eq $false - } - - foreach ($Name in $namesWithoutWildcards) - { - $foundResources = $Resources | Where-Object -FilterScript { - ($_.Name -eq $Name) -or ($_.ResourceType -eq $Name) - } - if ($foundResources.Count -eq 0) - { - $errorMessage = $LocalizedData.ResourceNotFound -f @($Name, 'Resource') - Write-Error -Message $errorMessage - } - } -} - -# -# Get implementing module path -# -function GetImplementingModulePath -{ - param ( - [Parameter(Mandatory)] - [string] - $schemaFileName - ) - - $moduleFileName = ($schemaFileName -replace ".schema.mof$", '') + '.psd1' - if (Test-Path $moduleFileName) - { - return $moduleFileName - } - - $moduleFileName = ($schemaFileName -replace ".schema.mof$", '') + '.psm1' - if (Test-Path $moduleFileName) - { - return $moduleFileName - } - - return -} - -# -# Gets module for a DSC resource -# -function GetModule -{ - [OutputType('System.Management.Automation.PSModuleInfo')] - param ( - [Parameter(Mandatory)] - [System.Management.Automation.PSModuleInfo[]] - $modules, - [Parameter(Mandatory)] - [string] - $schemaFileName - ) - - if($schemaFileName -eq $null) - { - return $null - } - - $schemaFileExt = $null - if ($schemaFileName -match '.schema.mof') - { - $schemaFileExt = ".schema.mof$" - } - - if ($schemaFileName -match '.schema.psm1') - { - $schemaFileExt = ".schema.psm1$" - } - - if(!$schemaFileExt) - { - return $null - } - - # get module from parent directory. - # Desired structure is : /DSCResources//schema.File - $validResource = $false - $schemaDirectory = Split-Path $schemaFileName - if($schemaDirectory) - { - $subDirectory = [System.IO.Directory]::GetParent($schemaDirectory) - - if ($subDirectory -and ($subDirectory.Name -eq 'DSCResources') -and $subDirectory.Parent) - { - $moduleDirectory = [System.IO.Directory]::GetParent($subDirectory) - $results = $modules | Where-Object -FilterScript { - $_.ModuleBase -eq $subDirectory.Parent.FullName - } - - if ($results) - { - # Log Resource is internally handled by the CA. There is no formal provider for it. - if ($schemaFileName -match 'MSFT_LogResource') - { - $validResource = $true - } - else - { - # check for proper resource module - foreach ($ext in @('.psd1', '.psm1', '.dll', '.cdxml')) - { - $resModuleFileName = ($schemaFileName -replace $schemaFileExt, '') + $ext - if(Test-Path($resModuleFileName)) - { - $validResource = $true - break - } - } - } - } - } - } - - if ($results -and $validResource) - { - return $results[0] - } - else - { - return $null - } -} - -# -# Checks whether a resource is hidden or not -# -function IsHiddenResource -{ - param ( - [Parameter(Mandatory)] - [string] - $ResourceName - ) - - $hiddenResources = @( - 'OMI_BaseResource', - 'MSFT_KeyValuePair', - 'MSFT_BaseConfigurationProviderRegistration', - 'MSFT_CimConfigurationProviderRegistration', - 'MSFT_PSConfigurationProviderRegistration', - 'OMI_ConfigurationDocument', - 'MSFT_Credential', - 'MSFT_DSCMetaConfiguration', - 'OMI_ConfigurationDownloadManager', - 'OMI_ResourceModuleManager', - 'OMI_ReportManager', - 'MSFT_FileDownloadManager', - 'MSFT_WebDownloadManager', - 'MSFT_FileResourceManager', - 'MSFT_WebResourceManager', - 'MSFT_WebReportManager', - 'OMI_MetaConfigurationResource', - 'MSFT_PartialConfiguration', - 'MSFT_DSCMetaConfigurationV2' - ) - - return $hiddenResources -contains $ResourceName -} - -# -# Gets patterns for names -# -function GetPatterns -{ - [OutputType('System.Management.Automation.WildcardPattern[]')] - param ( - [string[]] - $names - ) - - $patterns = @() - - if ($names -eq $null) - { - return $patterns - } - - foreach ($Name in $names) - { - $patterns += New-Object -TypeName System.Management.Automation.WildcardPattern -ArgumentList @($Name, [System.Management.Automation.WildcardOptions]::IgnoreCase) - } - - return $patterns -} - -# -# Checks whether an input name matches one of the patterns -# $pattern is not expected to have an empty or null values -# -function IsPatternMatched -{ - [OutputType('bool')] - param ( - [System.Management.Automation.WildcardPattern[]] - $patterns, - [Parameter(Mandatory)] - [string] - $Name - ) - - if ($patterns -eq $null) - { - return $true - } - - foreach ($pattern in $patterns) - { - if ($pattern.IsMatch($Name)) - { - return $true - } - } - - return $false -} - -Export-ModuleMember -Function Get-DscResource -########################################################### - - -########################################################### -# Aliases -########################################################### -New-Alias -Name 'sacfg' -Value 'Start-DSCConfiguration' -New-Alias -Name 'tcfg' -Value 'Test-DSCConfiguration' -New-Alias -Name 'gcfg' -Value 'Get-DSCConfiguration' -New-Alias -Name 'rtcfg' -Value 'Restore-DSCConfiguration' -New-Alias -Name 'glcm' -Value 'Get-DSCLocalConfigurationManager' -New-Alias -Name 'slcm' -Value 'Set-DSCLocalConfigurationManager' -New-Alias -Name 'pbcfg' -Value 'Publish-DSCConfiguration' -New-Alias -Name 'ulcm' -Value 'Update-DscLocalConfigurationManager' -New-Alias -Name 'upcfg' -Value 'Update-DSCConfiguration' -New-Alias -Name 'gcfgs' -Value 'Get-DscConfigurationStatus' - -Export-ModuleMember -Alias * \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.types.ps1xml deleted file mode 100644 index f816fe6..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.types.ps1xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - GetDscConfigurationType - - - CimClassName - - if ($this.CimClass -ne $null) { $this.CimClass.CimClassName } else {""} - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_PartialConfiguration - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/OMI_ConfigurationDownloadManager - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/OMI_ResourceModuleManager - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/OMI_ReportManager - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_ResourceInDesiredState - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_ResourceNotInDesiredState - - - ToString - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/DesiredStateConfiguration/MSFT_DSCConfigurationStatus - - - ToString - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDscXMachine.psm1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDscXMachine.psm1 deleted file mode 100644 index 494da2f..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/PSDscXMachine.psm1 +++ /dev/null @@ -1,376 +0,0 @@ -# internal functions for WaitForX - -# Fallback message strings in en-US -DATA localizedData -{ - # culture = "en-US" - ConvertFrom-StringData @' - InvalidInputParam = Invalid input parameters! - InvalidInputThrottle = Invalid input throttle limit! - CheckRemoteState = Checking remote resource '{0}' state ... - RemoteResourceNotReady = Remote resource '{0}' is not ready. - RemoteResourceNotReadyAndRetry = Remote resource '{0}' is not ready. Retrying after {1} second(s) - RemoteResourceReady = Remote resource '{0}' is ready - RemoteConfigNotReady = Resource '{0}' on machine(s) '{1}' is not ready. - RemoteConfigNotReadyWithRetry = Resource '{0}' on machine(s) '{1}' is not ready after '{2}' retries with retry interval of '{3}' second(s). - NodeNameHasDuplicates = NodeName contains duplicate machine names! Check the NodeName and expected MinimalNumberOfMachineInState parameters. - RemoteConnectivityFailure = Cannot create remote session to machine '{0}' -'@ -} -Import-LocalizedData LocalizedData -filename PSDSCxMachine.strings.psd1 - -$script:NodeInDesiredState = @() -$script:NodeNameIsDuplicated = $false - -function Get-_InternalPSDscXMachineTR -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $RemoteResourceId, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $RemoteMachine, - - [Uint32] $MinimalNumberOfMachineInState = $RemoteMachine.Length, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 - ) - - return @{ - ResourceName = $RemoteResourceId - NodeName = $RemoteMachine - RetryIntervalSec = $RetryIntervalSec - RetryCount = $RetryCount - ThrottleLimit = $ThrottleLimit - } -} - -function IsAccessDeniedIssue -{ - param ( $er) - - $ci = $er.CategoryInfo - [xml]$xml = $er.Exception.Message - return ($ci.TargetName -ilike "*MSFT_DscProxy") -and ($er.Exception.HResult -eq 0x80131509 ) -and ( -not (($xml.ChildNodes.Count -gt 0) -and ($xml.ChildNodes[0].Code -eq 5))) -} - -function Set-_InternalPSDscXMachineTR -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $RemoteResourceId, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $RemoteMachine, - - [Uint32] $MinimalNumberOfMachineInState = $RemoteMachine.Length, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 - ) - - if ($MinimalNumberOfMachineInState -gt $remoteMachine.Count) - { - throw $localizedData.InvalidInputParam - } - - if ($ThrottleLimit -eq 0) - { - throw $localizedData.InvalidInputThrottle - } - - $bState = $false - $retry = 0 - - Write-Debug -Message ($localizedData.CheckRemoteState -f $RemoteResourceId) - for ($retry = 0; $retry -lt $RetryCount; $retry++) - { - Write-Verbose -Message ($localizedData.RemoteResourceNotReadyAndRetry -f $RemoteResourceId, $RetryIntervalSec) - Sleep -Seconds $RetryIntervalSec - - $Iterations = [math]::Ceiling($RemoteMachine.Count / $ThrottleLimit) - $initialItr = $retry * $Iterations - for ($itr = $initialItr; $itr -lt $initialItr+$Iterations; $itr++) - { - try - { - $machinesToConnect = Get-MachinesToEnsureConnection -remoteMachine $remoteMachine -iteration $itr -throttleLimit $ThrottleLimit - if ($machinesToConnect.Count -eq 0) - { - $bState = $true; - } - else - { - $bState = Get-RemoteResourceState -remoteMachine $machinesToConnect -RemoteResourceId $RemoteResourceId -MinimalNumberOfMachineInState $MinimalNumberOfMachineInState - } - } - catch - { - if (IsAccessDeniedIssue -er $_) - { - Write-Debug -Message "Exception: $_" - } - else - { - Write-Verbose -Message "Exception: $_" - } - } - - if ($bState) - { - Write-Verbose -Message ($localizedData.RemoteResourceReady -f $RemoteResourceId) - return - } - } - } - if ($script:NodeNameIsDuplicated) - { - # reset $NodeNameIsDuplicated - $script:NodeNameIsDuplicated = $false - throw $localizedData.NodeNameHasDuplicates - } - else - { - if ($RetryCount -gt 0) - { - throw ($localizedData.RemoteConfigNotReadyWithRetry -f $RemoteResourceId, "$($RemoteMachine)", $RetryCount, $RetryIntervalSec ) - } - else - { - throw ($localizedData.RemoteConfigNotReady -f $RemoteResourceId, "$($RemoteMachine)") - } - } -} - -function Test-_InternalPSDscXMachineTR -{ - param - ( - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string] $RemoteResourceId, - - [parameter(Mandatory)] - [ValidateNotNullOrEmpty()] - [string[]] $RemoteMachine, - - [Uint32] $MinimalNumberOfMachineInState = $RemoteMachine.Length, - - [ValidateRange(1,[Uint64]::MaxValue)] - [Uint64] $RetryIntervalSec = 1, - - [Uint32] $RetryCount = 0, - - [Uint32] $ThrottleLimit = 32 - ) - - if ($MinimalNumberOfMachineInState -gt $remoteMachine.Count) - { - throw $localizedData.InvalidInputParam - } - - if ($ThrottleLimit -eq 0) - { - throw $localizedData.InvalidInputThrottle - } - - $bState = $false - - Write-Debug -Message ($localizedData.CheckRemoteState -f $RemoteResourceId) - - $script:NodeInDesiredState = @() - - $TotalRetryCount = 1 - $MaxRetryCount = 5 - for ($retry = 0; $retry -lt $TotalRetryCount; $retry++) - { - if ($retry -gt 0) { Sleep -Milliseconds 200 } - - # according to algorithm described in Get-MachinesToEnusreConnection, the number of iterations to cover all machines at least once is calculated as stoping condition in following for loop - for ($iteration = 0; $iteration -lt [math]::Ceiling($RemoteMachine.Count / $ThrottleLimit); $iteration++) - { - try - { - $machinesToConnect = Get-MachinesToEnsureConnection -remoteMachine $remoteMachine -iteration $iteration -throttleLimit $ThrottleLimit - $bState = Get-RemoteResourceState -remoteMachine $machinesToConnect -RemoteResourceId $RemoteResourceId -MinimalNumberOfMachineInState $MinimalNumberOfMachineInState - } - catch - { - if (IsAccessDeniedIssue -er $_) - { - Write-Debug -Message "Exception: $_" - $TotalRetryCount = $MaxRetryCount - } - else - { - Write-Verbose -Message "Exception: $_" - $TotalRetryCount = $retry # stop TotalRetryCount as non-connectivity issue. - } - } - - if ($bState) - { - Write-Verbose -Message ($localizedData.RemoteResourceReady -f $RemoteResourceId) - return $true - } - } - } - - Write-Verbose -Message ($localizedData.RemoteResourceNotReady -f $RemoteResourceId) - - return $false -} - -function Get-MachinesToEnsureConnection -{ - param( - [ValidateNotNullOrEmpty()][string[]] $remoteMachine, - [int] $iteration, - [int] $throttleLimit - ) - - $allMachines = @() - foreach ($machine in $remoteMachine) - { - if ($machine -notin $script:NodeInDesiredState) - { - $allMachines += $machine - } - } - - <# the algorithm works like this: - suppose we have 10 machines (0-9) and throttle limit is 3 - following is the machines alively connected in each iteration - iteration machines - 0 0,1,2 - 1 3,4,5 - 2 6,7,8 - 3 9,0,1 - 4 2,3,4 - ... - #> - - if ($throttleLimit -ge $allMachines.Count) - { - return $allMachines - } - else - { - $machinesToConnect = @() - $start = ($iteration * $throttleLimit) % ($allMachines.Count) - - $count = 0 - for ($i = $start; $i -lt $allMachines.Count -and $count -lt $throttleLimit; $i++) - { - $machinesToConnect += $allMachines[$i] - $count++ - } - - if ($count -lt $throttleLimit) - { - for ($i = 0; $i -lt ($throttleLimit - $count); $i++) - { - $machinesToConnect += $allMachines[$i] - } - } - return $machinesToConnect - } -} - -function Get-RemoteResourceState -{ - param ( - - [ValidateNotNullOrEmpty()][string[]] $remoteMachine, - [ValidateNotNullOrEmpty()][string] $RemoteResourceId, - [Uint32] $MinimalNumberOfMachineInState = $remoteMachine.Count - ) - - Write-Debug "Get-RemoteResourceState ..." - - if ($script:NodeInDesiredState.Count -eq $MinimalNumberOfMachineInState) - { - return $true - } - - $remoteMachineException = $null - - foreach ($machine in $remoteMachine) - { - Write-Debug "Get resource state on remoteMachine: $machine" - #Remove duplicate machine names from $remoteMachine list - if ($script:NodeInDesiredState -contains $machine) - { - $script:NodeNameIsDuplicated = $true - continue - } - try - { - if (Get-RemoteResourceStateOnMachine -RemoteResourceId $RemoteResourceId -MachineName $machine) - { - $script:NodeInDesiredState += $machine - - if ($script:NodeInDesiredState.Count -eq $MinimalNumberOfMachineInState) - { - return $true - } - } - else - { - Write-Debug "Resource $RemoteResourceId on machine $machine is not ready" - } - } - catch - { - # continue here to iterate every machine from $remoteMachine list - $remoteMachineException = $_ - } - } - # re-throw the original exception once browsing all the machines is complete - if($remoteMachineException -ne $null) - { - throw $remoteMachineException - } - - $false -} - -function Get-RemoteResourceStateOnMachine -{ - param ( - [ValidateNotNullOrEmpty()][string] $RemoteResourceId, - [ValidateNotNullOrEmpty()][string] $MachineName - ) - - Write-Debug "Get-RemoteResourceStateOnMachine on machine: $MachineName and resource: $RemoteRecourceId..." - - $buf = [Text.Encoding]::Unicode.GetBytes($RemoteResourceId) - $data = [System.Convert]::ToBase64String($buf) - - $result = Invoke-WSManAction -ResourceURI http://schemas.microsoft.com/wbem/wsman/1/wmi/root/microsoft/windows/DesiredStateConfigurationProxy/MSFT_DscProxy ` - -action GetResourceState -ComputerName $MachineName -valueset @{ConfigurationData = "$data" } ` - -Authentication None - $retV = $result.State - - Write-Debug "Get state ($retV) on machine: $MachineName and resource: $RemoteRecourceId" - - return $retV -ieq 'true' -} - -Export-ModuleMember -Function *-_InternalPSDscXMachineTR - diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Remove-DscConfigurationDocument.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Remove-DscConfigurationDocument.cdxml deleted file mode 100644 index bc6a8d4..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Remove-DscConfigurationDocument.cdxml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - 2.0.0.0 - DscConfigurationDocument - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Restore-DscConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Restore-DscConfiguration.cdxml deleted file mode 100644 index e2d0865..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Restore-DscConfiguration.cdxml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - 2.0.0.0 - DscConfiguration - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Stop-DscConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Stop-DscConfiguration.cdxml deleted file mode 100644 index ceb0502..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/Stop-DscConfiguration.cdxml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - 2.0.0.0 - DscConfiguration - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/WebDownloadManager/WebDownloadManager.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/WebDownloadManager/WebDownloadManager.psd1 deleted file mode 100644 index 5c523bdec7fadb0569a91a0415b67884616bb5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2446 zcmchZZ%@-u6voe6O#BYb_M&QJC<3Ahk!FaHfFXeB+ivZ!k#)EYkr+RaUsC-&w=2D6 zBTQpV1HHTV{C&=I&h4+CO}lURtZ9Mm+rSdLuro{f)wkGk%dE$*k&W5uaXxe>zFcSr z>|Y`^v?Ke-`;2Fcb=$&;?b1UV$#c6xGP6@;$F^Y&`{8_N)@6TyuK}LqPtrr=^*?4O zW0hNrlgRl9JUb(Hhb~gZ@r6}_WW)2X7&h&j+tKlWz!2f^}&mw;vTd`$UE38-DUI#lpBo^6UWfg<*8mkw`cCfJQd5Ea|n3@zdz72;e z2UVv}b;Ob@d&|2|JY{^-2-Y?KKMRE777>md&oUw}8CAvX^IBMlbpe%Bp6Uu^n6oFg z>0J31JP6=N3a0ukhUCZ(&`;RecNoPmUVNx zNcq1_K1JOx*&W&^o5w=i_UOKOB#U0^;%mfHFf+za7wj|qr>w^CR-GT%1ESJ|NbNDd zKF|ScZWU3tg!PI&yquk9 zzq5Bl&bmv=tdBrI=w5(9X>q|8YB`7WOv((&T$MFRO6|x^7R{y5tM&;Nb-3;_?l0nNt8aqdy@#O8dp6a*=^3ni@W5+&5V0gxTNqx?->2*ZrtJg z3~m*DFyN*9Reu=N@XxOLvQISbaZ@-Pb@Ld%7JH*JnD-=z%h>YMy+*{wDbiJTYiJ diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDSCxMachine.strings.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDSCxMachine.strings.psd1 deleted file mode 100644 index 3eac90c9c3094336f009654677c52f31b2ef584a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmbtUziU%b6#fQ>Du{H;kl{j+wu3Qg{ZU21(infxR?&(X0uqz74NcOLzLffFv(Uk@ zgMWZa;Z11-qd}6;UZulq)lvSmB+jHzIV?(-*>)q?)mkz4+`U$ zM+ia05XECe5XMn>Foe@^<2=V9&K_K#rH9W&oZ(-EQA}_gz%|ZO8048@+6{C699*<< zbCi>3^{BXi8+YO5JBDSR2@-RbhzTOPum}T5{WZh23kw{>L_3aS_&Y~M`v|S(k>V<( z*9z18PLkIIaeU?Lj&I*paW7=woyGdI4^r<*b(OZk3m)s4$ z3RlqohhZOCN_^wEMIYknhQ_s34ePH3GBs!wq}L#sT*gc5-CJiyVZ}Q6Mxl{)nhN=x zqqt&ir5kBiS3gr!Phv9o#K^bZn{z8r+wEtJ_7Undr(=)nlMx-4L?h>`<#pnl*%yUZ zMa9UTFniB9D-`ne>eH;ky`5#tUt3En^j2KVlFd-GZ2D{0byDNV-yrk(s0)f=4FKjK z(NOWecVzMvg_|XR>2KSw@ESVF&lDY36zkYFl@>_fJY3CTs_QAC7hIgMV4Az!J*i`y3 z48(R=v+dayo~9+bDjYG_%}Z8*_d+a&w8d(!xgV(6xe&|!V-Rh^#ePo zh3y3K5`5#tjL|m5)k9(@*)gWu`l0j=={PpK-JPLz3r7lT<<9$OXG(f%i07la^BJsu zAALoME4@mFE)g!-3LYr{(_gWe#kbcfP?j3-cyg#@!ES{KRcrIzTf@M BwfF!4 diff --git a/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDesiredStateConfiguration.Resource.psd1 b/newton-cn/bin/v1.0/Modules/PSDesiredStateConfiguration/ko-KR/PSDesiredStateConfiguration.Resource.psd1 deleted file mode 100644 index ce54e7466af66216404959ce86bbb6d52c5823e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11152 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 OhM%O|gy$@YbpHaolS4lM diff --git a/newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psd1 b/newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psd1 deleted file mode 100644 index ba9d444..0000000 --- a/newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psd1 +++ /dev/null @@ -1,14 +0,0 @@ -@{ - GUID="c61d6278-02a3-4618-ae37-a524d40a7f44 " - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion="1.0.0.0" - PowerShellVersion = '5.1' - CLRVersion="2.0.50727" - ModuleToProcess="PSDiagnostics.psm1" - AliasesToExport = @() - CmdletsToExport = @() - FunctionsToExport="Disable-PSTrace","Disable-PSWSManCombinedTrace","Disable-WSManTrace","Enable-PSTrace","Enable-PSWSManCombinedTrace","Enable-WSManTrace","Get-LogProperties","Set-LogProperties","Start-Trace","Stop-Trace" - CompatiblePSEditions = @('Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psm1 b/newton-cn/bin/v1.0/Modules/PSDiagnostics/PSDiagnostics.psm1 deleted file mode 100644 index bc893f13db11cb01d070e736661007ced98cc6a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23642 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 diff --git a/newton-cn/bin/v1.0/Modules/PcsvDevice/CIM_PhysicalComputerSystemView.cdxml b/newton-cn/bin/v1.0/Modules/PcsvDevice/CIM_PhysicalComputerSystemView.cdxml deleted file mode 100644 index 685a375..0000000 --- a/newton-cn/bin/v1.0/Modules/PcsvDevice/CIM_PhysicalComputerSystemView.cdxml +++ /dev/null @@ -1,275 +0,0 @@ - - - - 1.0 - PcsvDevice - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.format.ps1xml b/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.format.ps1xml deleted file mode 100644 index f776532..0000000 --- a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.format.ps1xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - Table - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/HardwareManagement/MSFT_PCSVDevice - - - - - - 25 - - - - 25 - - - - 25 - - - - 15 - - - - 17 - - - - - - - TargetAddress - - - Manufacturer - - - Model - - - SerialNumber - - - Status - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.psd1 b/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.psd1 deleted file mode 100644 index 843340a..0000000 --- a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.psd1 +++ /dev/null @@ -1,26 +0,0 @@ -@{ - GUID = '576ff287-7d01-46a3-8a88-94df7581a2b0' - Author="Microsoft Corporation" - CompanyName="Microsoft" - Copyright="© Microsoft. All rights reserved." - HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390809" - NestedModules = @('CIM_PhysicalComputerSystemView.cdxml') - ModuleVersion = '1.0.0.0' - AliasesToExport = @() - CmdletsToExport = @() - FunctionsToExport = @( - 'Get-PcsvDevice', - 'Start-PcsvDevice', - 'Stop-PcsvDevice', - 'Restart-PcsvDevice', - 'Set-PcsvDeviceBootConfiguration', - 'Set-PcsvDeviceNetworkConfiguration', - 'Set-PcsvDeviceUserPassword', - 'Clear-PcsvDeviceLog', - 'Get-PcsvDeviceLog' - ) - PowerShellVersion = '5.1' - TypesToProcess = @('PCSVDevice.types.ps1xml') - FormatsToProcess = @('PCSVDevice.format.ps1xml') - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.types.ps1xml b/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.types.ps1xml deleted file mode 100644 index 050811f..0000000 --- a/newton-cn/bin/v1.0/Modules/PcsvDevice/PcsvDevice.types.ps1xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/HardwareManagement/MSFT_PCSVDevice - - - Status - - $cimValue = $this.PSBase.CimInstanceProperties['EnabledState'].Value - if ($cimValue -eq $null) - { - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PcsvDevice.State]::Unknown - } - else - { - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PcsvDevice.State]$cimValue - } - - - - Name - - $this.PSBase.CimSystemProperties['ServerName'].Value - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PersistentMemory/Microsoft.Storage.PersistentMemory.Management.Commands.dll b/newton-cn/bin/v1.0/Modules/PersistentMemory/Microsoft.Storage.PersistentMemory.Management.Commands.dll deleted file mode 100644 index b9db44c3b429d7b9575896565763643677eb68d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144384 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 - - - - Persistent memory disk - - Microsoft.Storage.PersistentMemory.Management.PmemDisk - - - - - - - - - - - - - - - - - - DiskNumber - - - - "{0:#.##}" -f ($_.SizeInBytes / 1GB) + " GB" - - - HealthStatus - - - AtomicityType - - - CanBeRemoved - - - PhysicalDeviceIds - - - UnsafeShutdownCount - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PersistentMemory/PmemPhysicalDevice.ps1xml b/newton-cn/bin/v1.0/Modules/PersistentMemory/PmemPhysicalDevice.ps1xml deleted file mode 100644 index 32824ef..0000000 --- a/newton-cn/bin/v1.0/Modules/PersistentMemory/PmemPhysicalDevice.ps1xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - Physical persistent memory device - - Microsoft.Storage.PersistentMemory.Management.PmemPhysicalDevice - - - - - - - - - - - - - - - - - - - - - DeviceId - - - DeviceType - - - HealthStatus - - - OperationalStatus - - - PhysicalLocation - - - FirmwareRevision - - - - "{0:0.##}" -f ($_.PersistentMemorySizeInBytes / 1GB) + " GB" - - - - if ($_.VolatileMemorySizeInBytes -eq $null) { - "Unknown" - } else { - "{0:0.##}" -f ($_.VolatileMemorySizeInBytes / 1GB) + " GB" - } - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PersistentMemory/ko/Microsoft.Storage.PersistentMemory.Management.Commands.Resources.dll b/newton-cn/bin/v1.0/Modules/PersistentMemory/ko/Microsoft.Storage.PersistentMemory.Management.Commands.Resources.dll deleted file mode 100644 index c00c0489a156369f372aef0e3a7fab5e42e2c905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 - - - - - Win32_PnPDeviceProperty.TableView - - Microsoft.Management.Infrastructure.CimInstance#ROOT/cimv2/Win32_PnPDeviceProperty - Microsoft.Management.Infrastructure.CimInstance#Win32_PnPDeviceProperty - - - - - 10 - - - 41 - - - 10 - - - 59 - - - - - - - InstanceId - - - KeyName - - - Type - - - Data - - - - - - - - PnpDevice.TableView - - Microsoft.Management.Infrastructure.CimInstance#Win32_PnPEntity - Microsoft.Management.Infrastructure.CimInstance#ROOT/cimv2/Win32_PnPEntity - - - - - 10 - - - 15 - - - 80 - - - 15 - - - - - - - Status - - - Class - - - FriendlyName - - - InstanceId - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Resource.psd1 b/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Resource.psd1 deleted file mode 100644 index 5458ed4..0000000 --- a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Resource.psd1 +++ /dev/null @@ -1,72 +0,0 @@ -######################################################################################### -# -# Copyright (c) Microsoft Corporation. All rights reserved. -# -# Localized PnpDevice.Resource.psd1 -# -######################################################################################### - -ConvertFrom-StringData @' -###PSLOC - IDS_PROB_NOT_CONFIGURED=This device is not configured correctly. {0} - IDS_PROB_DEVLOADERFAILED=Windows cannot load the driver for this device. {0} - IDS_PROB_OUT_OF_MEMORY=The driver for this device might be corrupted, or your system may be running low on memory or other resources. {0} - IDS_PROB_WRONG_TYPE=This device is not working properly. One of its drivers or your registry might be corrupted. {0} - IDS_PROB_LACKEDARBITRATOR=The driver for this device needs a resource that Windows cannot manage. {0} - IDS_PROB_BOOT_CONFIG_CONFLICT=The boot configuration for this device conflicts with other devices. {0} - IDS_PROB_FAILED_FILTER=Cannot filter. {0} - IDS_PROB_DEVLOADER_NOT_FOUND=The driver loader for the device is missing. {0} - IDS_PROB_INVALID_DATA=Windows cannot identify this hardware because it does not have a valid hardware identification number. {0}\r\n\r\nFor assistance, contact the hardware manufacturer. - IDS_PROB_FAILED_START=This device cannot start. {0} - IDS_PROB_LIAR=This device failed. {0} - IDS_PROB_NORMAL_CONFLICT=This device cannot find enough free resources that it can use. {0}\r\n\r\nIf you want to use this device, you will need to disable one of the other devices on this system. - IDS_PROB_NOT_VERIFIED=Windows cannot verify this device's resources. {0} - IDS_PROB_NEEDRESTART=This device cannot work properly until you restart your computer. {0} - IDS_PROB_REENUMERATION=This device is not working properly because there is probably a reenumeration problem. {0} - IDS_PROB_PARTIALCONFIG=Windows cannot identify all the resources this device uses. {0} - IDS_PROB_UNKNOWN_RESOURCE=This device is asking for an unknown resource type. {0} - IDS_PROB_REINSTALL=Reinstall the drivers for this device. {0} - IDS_PROB_REGISTRY=Windows cannot start this hardware device because its configuration information (in the registry) is incomplete or damaged. {0} - IDS_PROB_WILL_BE_REMOVED=Windows is uninstalling this device. {0} - IDS_PROB_DISABLED=This device is disabled. {0} - IDS_DEVICE_NOT_THERE=This device is not present, is not working properly, or does not have all its drivers installed. {0} - IDS_PROB_MOVED=Windows is still setting up this device. {0} - IDS_PROB_TOO_EARLY=Windows is still setting up this device. {0} - IDS_PROB_NO_VALID_LOG_CONF=This device does not have valid log configuration. {0} - IDS_PROB_FAILEDINSTALL=The drivers for this device are not installed. {0} - IDS_PROB_HARDWAREDISABLED=This device is disabled because the firmware of the device did not give it the required resources. {0} - IDS_PROB_CANT_SHARE_IRQ=This device is using an Interrupt Request (IRQ) resource that another device is using. {0} - IDS_PROB_FAILED_ADD=This device is not working properly because Windows cannot load the drivers required for this device. {0} - IDS_PROB_DISABLED_SERVICE=A driver (service) for this device has been disabled. An alternate driver may be providing this functionality. {0} - IDS_PROB_TRANSLATION_FAILED=Windows cannot determine which resources are required for this device. {0} - IDS_PROB_NO_SOFTCONFIG=Windows cannot determine the settings for this device. Consult the documentation that came with this device and use the Resource tab to set the configuration. {0} - IDS_PROB_BIOS_TABLE=Your computer's system firmware does not include enough information to properly configure and use this device. To use this device, contact your computer manufacturer to obtain a firmware or BIOS update. {0} - IDS_PROB_IRQ_TRANSLATION_FAILED=This device is requesting a PCI interrupt but is configured for an ISA interrupt (or vice versa). Please use the computer's system setup program to reconfigure the interrupt for this device. {0} - IDS_PROB_FAILED_DRIVER_ENTRY=Windows cannot initialize the device driver for this hardware. {0} - IDS_PROB_DRIVER_FAILED_PRIOR_UNLOAD=Windows cannot load the device driver for this hardware because a previous instance of the device driver is still in memory. {0} - IDS_PROB_DRIVER_FAILED_LOAD=Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. {0} - IDS_PROB_DRIVER_SERVICE_KEY_INVALID=Windows cannot access this hardware because its service key information in the registry is missing or recorded incorrectly. {0} - IDS_PROB_LEGACY_SERVICE_NO_DEVICES=Windows successfully loaded the device driver for this hardware but cannot find the hardware device. {0} - IDS_PROB_DUPLICATE_DEVICE=Windows cannot load the device driver for this hardware because there is a duplicate device already running in the system. {0} - IDS_PROB_FAILED_POST_START=Windows has stopped this device because it has reported problems. {0} - IDS_PROB_HALTED=An application or service has shut down this hardware device. {0} - IDS_PROB_PHANTOM=Currently, this hardware device is not connected to the computer. {0}\r\n\r\nTo fix this problem, reconnect this hardware device to the computer. - IDS_PROB_SYSTEM_SHUTDOWN=Windows cannot gain access to this hardware device because the operating system is in the process of shutting down. {0}\r\n\r\nThe hardware device should work correctly next time you start your computer. - IDS_PROB_HELD_FOR_EJECT=Windows cannot use this hardware device because it has been prepared for ""safe removal"", but it has not been removed from the computer. {0}\r\n\r\nTo fix this problem, unplug this device from your computer and then plug it in again. - IDS_PROB_DRIVER_BLOCKED=The software for this device has been blocked from starting because it is known to have problems with Windows. Contact the hardware vendor for a new driver. {0} - IDS_PROB_REGISTRY_TOO_LARGE=Windows cannot start new hardware devices because the system hive is too large (exceeds the Registry Size Limit). {0}\r\n\r\nTo fix this problem, you should first try uninstalling any hardware devices that you are no longer using. If that doesn't solve the problem, then you will have to reinstall Windows. - IDS_PROB_SETPROPERTIES_FAILED=Windows cannot apply all of the properties for this device. Device properties may include information that describes the device's capabilities and settings (such as security settings for example). {0}\r\n\r\nTo fix this problem, you can try reinstalling this device. However, it is recommended that you contact the hardware manufacturer for a new driver. - IDS_PROB_SYSTEMFAILURE=System failure: Try changing the driver for this device. If that doesn't work, see your hardware documentation. {0} - IDS_PROB_NOPROBLEM=This device is working properly. - IDS_PROB_UNKNOWN=This device has a problem, but Windows cannot determine what the problem is. - IDS_PROB_UNKNOWN_WITHCODE=This device has a problem that Windows cannot identify. {0} - IDS_PROB_CODE=(Code {0}). - IDS_PROB_WAITING_ON_DEPENDENCY=This device is currently waiting on another device or set of devices to start. {0} - IDS_PROB_UNSIGNED_DRIVER=Windows cannot verify the digital signature for the drivers required for this device. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. {0} - IDS_PROB_USED_BY_DEBUGGER=This device has been reserved for use by the Windows kernel debugger for the duration of this boot session. {0} - IDS_PROB_DEVICE_RESET=This device has failed and is undergoing a reset. {0} - IDS_PROB_CONSOLE_LOCKED=This device is blocked from starting while the user is not logged in. {0} - IDS_PROB_NEED_CLASS_CONFIG=Windows is still setting up the class configuration for this device. {0} - IDS_PROB_GUEST_ASSIGNMENT_FAILED=This device could not be assigned to a guest partition. {0} -###PSLOCC -'@ \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Types.ps1xml b/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Types.ps1xml deleted file mode 100644 index c54062a..0000000 --- a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.Types.ps1xml +++ /dev/null @@ -1,283 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Cimv2/Win32_PnPEntity - - - Class - PNPClass - - - FriendlyName - Name - - - InstanceId - DeviceID - - - Problem - ConfigManagerErrorCode - - - ConfigManagerErrorCode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PnpDevice.Problem]($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value) - - - - ProblemDescription - - Microsoft.PowerShell.Utility\Import-LocalizedData LocalizedData -filename PnpDevice.Resource.psd1 - switch([Microsoft.PowerShell.Cmdletization.GeneratedTypes.PnpDevice.Problem]($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - { - CM_PROB_NONE - { - $str = $LocalizedData.IDS_PROB_NOPROBLEM - } - CM_PROB_NOT_CONFIGURED - { - $str = $LocalizedData.IDS_PROB_NOT_CONFIGURED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DEVLOADER_FAILED - { - $str = $LocalizedData.IDS_PROB_DEVLOADERFAILED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_OUT_OF_MEMORY - { - $str = $LocalizedData.IDS_PROB_OUT_OF_MEMORY -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_ENTRY_IS_WRONG_TYPE - { - $str = $LocalizedData.IDS_PROB_WRONG_TYPE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_LACKED_ARBITRATOR - { - $str = $LocalizedData.IDS_PROB_LACKEDARBITRATOR -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_BOOT_CONFIG_CONFLICT - { - $str = $LocalizedData.IDS_PROB_BOOT_CONFIG_CONFLICT -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_FILTER - { - $str = $LocalizedData.IDS_PROB_FAILED_FILTER -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DEVLOADER_NOT_FOUND - { - $str = $LocalizedData.IDS_PROB_DEVLOADER_NOT_FOUND -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_INVALID_DATA - { - $str = $LocalizedData.IDS_PROB_INVALID_DATA -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_START - { - $str = $LocalizedData.IDS_PROB_FAILED_START -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_LIAR - { - $str = $LocalizedData.IDS_PROB_LIAR -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NORMAL_CONFLICT - { - $str = $LocalizedData.IDS_PROB_NORMAL_CONFLICT -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NOT_VERIFIED - { - $str = $LocalizedData.IDS_PROB_NOT_VERIFIED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NEED_RESTART - { - $str = $LocalizedData.IDS_PROB_NEEDRESTART -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_REENUMERATION - { - $str = $LocalizedData.IDS_PROB_REENUMERATION -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_PARTIAL_LOG_CONF - { - $str = $LocalizedData.IDS_PROB_PARTIALCONFIG -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_UNKNOWN_RESOURCE - { - $str = $LocalizedData.IDS_PROB_UNKNOWN_RESOURCE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_REINSTALL - { - $str = $LocalizedData.IDS_PROB_REINSTALL -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_REGISTRY - { - $str = $LocalizedData.IDS_PROB_REGISTRY -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_WILL_BE_REMOVED - { - $str = $LocalizedData.IDS_PROB_WILL_BE_REMOVED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DISABLED - { - $str = $LocalizedData.IDS_PROB_DISABLED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DEVICE_NOT_THERE - { - $str = $LocalizedData.IDS_DEVICE_NOT_THERE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_MOVED - { - $str = $LocalizedData.IDS_PROB_MOVED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_TOO_EARLY - { - $str = $LocalizedData.IDS_PROB_TOO_EARLY -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NO_VALID_LOG_CONF - { - $str = $LocalizedData.IDS_PROB_NO_VALID_LOG_CONF -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_INSTALL - { - $str = $LocalizedData.IDS_PROB_FAILEDINSTALL -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_HARDWARE_DISABLED - { - $str = $LocalizedData.IDS_PROB_HARDWAREDISABLED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_CANT_SHARE_IRQ - { - $str = $LocalizedData.IDS_PROB_CANT_SHARE_IRQ -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_ADD - { - $str = $LocalizedData.IDS_PROB_FAILED_ADD -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DISABLED_SERVICE - { - $str = $LocalizedData.IDS_PROB_DISABLED_SERVICE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_TRANSLATION_FAILED - { - $str = $LocalizedData.IDS_PROB_TRANSLATION_FAILED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NO_SOFTCONFIG - { - $str = $LocalizedData.IDS_PROB_NO_SOFTCONFIG -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_BIOS_TABLE - { - $str = $LocalizedData.IDS_PROB_BIOS_TABLE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_IRQ_TRANSLATION_FAILED - { - $str = $LocalizedData.IDS_PROB_IRQ_TRANSLATION_FAILED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_DRIVER_ENTRY - { - $str = $LocalizedData.IDS_PROB_FAILED_DRIVER_ENTRY -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD - { - $str = $LocalizedData.IDS_PROB_DRIVER_FAILED_PRIOR_UNLOAD -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DRIVER_FAILED_LOAD - { - $str = $LocalizedData.IDS_PROB_DRIVER_FAILED_LOAD -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DRIVER_SERVICE_KEY_INVALID - { - $str = $LocalizedData.IDS_PROB_DRIVER_SERVICE_KEY_INVALID -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_LEGACY_SERVICE_NO_DEVICES - { - $str = $LocalizedData.IDS_PROB_LEGACY_SERVICE_NO_DEVICES -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DUPLICATE_DEVICE - { - $str = $LocalizedData.IDS_PROB_DUPLICATE_DEVICE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_FAILED_POST_START - { - $str = $LocalizedData.IDS_PROB_FAILED_POST_START -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_HALTED - { - $str = $LocalizedData.IDS_PROB_HALTED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_PHANTOM - { - $str = $LocalizedData.IDS_PROB_PHANTOM -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_SYSTEM_SHUTDOWN - { - $str = $LocalizedData.IDS_PROB_SYSTEM_SHUTDOWN -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_HELD_FOR_EJECT - { - $str = $LocalizedData.IDS_PROB_HELD_FOR_EJECT -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DRIVER_BLOCKED - { - $str = $LocalizedData.IDS_PROB_DRIVER_BLOCKED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_REGISTRY_TOO_LARGE - { - $str = $LocalizedData.IDS_PROB_REGISTRY_TOO_LARGE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_SETPROPERTIES_FAILED - { - $str = $LocalizedData.IDS_PROB_SETPROPERTIES_FAILED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_WAITING_ON_DEPENDENCY - { - $str = $LocalizedData.IDS_PROB_WAITING_ON_DEPENDENCY -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_UNSIGNED_DRIVER - { - $str = $LocalizedData.IDS_PROB_UNSIGNED_DRIVER -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_USED_BY_DEBUGGER - { - $str = $LocalizedData.IDS_PROB_USED_BY_DEBUGGER -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_DEVICE_RESET - { - $str = $LocalizedData.IDS_PROB_DEVICE_RESET -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_CONSOLE_LOCKED - { - $str = $LocalizedData.IDS_PROB_CONSOLE_LOCKED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_NEED_CLASS_CONFIG - { - $str = $LocalizedData.IDS_PROB_NEED_CLASS_CONFIG -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - CM_PROB_GUEST_ASSIGNMENT_FAILED - { - $str = $LocalizedData.IDS_PROB_GUEST_ASSIGNMENT_FAILED -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - Default - { - $str = $LocalizedData.IDS_PROB_UNKNOWN_WITHCODE -f ($LocalizedData.IDS_PROB_CODE -f ($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)) - } - } - return $str - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Cimv2/Win32_PnPDeviceProperty - - - InstanceId - DeviceID - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PnpDeviceProperty.Type]($this.PSBase.CimInstanceProperties['Type'].Value) - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.cdxml b/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.cdxml deleted file mode 100644 index 7ee672b..0000000 --- a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.cdxml +++ /dev/null @@ -1,268 +0,0 @@ - - - - 1.0 - PnpDevice - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OK - ERROR - DEGRADED - UNKNOWN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.psd1 b/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.psd1 deleted file mode 100644 index 628f8a9..0000000 --- a/newton-cn/bin/v1.0/Modules/PnpDevice/PnpDevice.psd1 +++ /dev/null @@ -1,28 +0,0 @@ -@{ - GUID = 'ad34bc8b-1cf8-47d8-bd82-f681c5358e1c' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0.0.0' - PowerShellVersion = '5.1' - HelpInfoUri="https://go.microsoft.com/fwlink/?LinkID=524801" - NestedModules = @( - 'PnpDevice.cdxml') - TypesToProcess = @( - 'PnpDevice.Types.ps1xml') - FormatsToProcess = @( - 'PnpDevice.format.ps1xml') - FileList = @( - 'PnpDevice.cdxml', - 'PnpDevice.Types.ps1xml', - 'PnpDevice.format.ps1xml', - 'PnpDevice.Resource.psd1') - AliasesToExport = @() - CmdletsToExport = @() - FunctionsToExport = @( - 'Get-PnpDevice', - 'Get-PnpDeviceProperty', - 'Enable-PnpDevice', - 'Disable-PnpDevice') - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter.format.ps1xml deleted file mode 100644 index c874ce0..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter.format.ps1xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - Formatting For MSFT_3DPrinter (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_3DPrinter - - - - - 30 - - - 15 - - - 12 - - - 25 - - - 15 - - - 8 - - - 10 - - - 15 - - - - - - - Name - - - ComputerName - - - Type - - - DriverName - - - PortName - - - Shared - - - Published - - - DeviceType - - - - - - - - Formatting For MSFT_3DPrinter (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_3DPrinter - - - - - - - Name - - - ComputerName - - - Type - - - ShareName - - - PortName - - - DriverName - - - Location - - - Comment - - - PrintProcessor - - - Datatype - - - Shared - - - Published - - - DeviceType - - - PermissionSDDL - - - Priority - - - DefaultJobPriority - - - StartTime - - - UntilTime - - - PrinterStatus - - - JobCount - - - DisableBranchOfficeLogging - - - BranchOfficeOfflineLogSizeMB - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter_v1.0.cdxml deleted file mode 100644 index 9ed4c73..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_3DPrinter_v1.0.cdxml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1.0 - Printer - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.format.ps1xml deleted file mode 100644 index 18a8a87..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.format.ps1xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - Formatting For MSFT_AdaptivePrinterPort (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_AdaptivePrinterPort - - - - - 20 - - - 20 - - - 20 - - - 20 - - - - - - - Name - - - ComputerName - - - Description - - - DiscoveryMethod - - - - - - - - Formatting For MSFT_AdaptivePrinterPort (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_AdaptivePrinterPort - - - - - - - Name - - - ComputerName - - - Description - - - DiscoveryMethod - - - DeviceUUID - - - DeviceURL - - - IppURL - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.types.ps1xml deleted file mode 100644 index 81c3bfe..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort.types.ps1xml +++ /dev/null @@ -1,15 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_AdaptivePrinterPort - - - DiscoveryMethod - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.AdaptivePrinterPort.DiscoveryMethodEnum]($this.PSBase.CimInstanceProperties['DiscoveryMethod'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort_v1.0.cdxml deleted file mode 100644 index 3fa116a..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_AdaptivePrinterPort_v1.0.cdxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1.0 - PrinterPort - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort.format.ps1xml deleted file mode 100644 index 2e9c8c4..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort.format.ps1xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - Formatting For MSFT_LocalPrinterPort (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LocalPrinterPort - - - - - 20 - - - 20 - - - 20 - - - - - - - Name - - - ComputerName - - - Description - - - - - - - - Formatting For MSFT_LocalPrinterPort (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LocalPrinterPort - - - - - - - Name - - - ComputerName - - - Description - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort_v1.0.cdxml deleted file mode 100644 index 8c81736..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LocalPrinterPort_v1.0.cdxml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1.0 - PrinterPort - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort.format.ps1xml deleted file mode 100644 index b6f0ecc..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort.format.ps1xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Formatting For MSFT_LprPrinterPort (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LprPrinterPort - - - - - 20 - - - 20 - - - 20 - - - - - - - Name - - - ComputerName - - - Description - - - - - - - - Formatting For MSFT_LprPrinterPort (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LprPrinterPort - - - - - - - Name - - - ComputerName - - - Description - - - HostName - - - PrinterName - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort_v1.0.cdxml deleted file mode 100644 index c70d662..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_LprPrinterPort_v1.0.cdxml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1.0 - PrinterPort - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.format.ps1xml deleted file mode 100644 index 8ef8bc9..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.format.ps1xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Formatting For MSFT_PrintJob (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrintJob - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrintJob - - - - - 5 - - - 15 - - - 15 - - - 20 - - - 20 - - - 15 - - - - - - - Id - - - ComputerName - - - PrinterName - - - DocumentName - - - SubmittedTime - - - JobStatus - - - - - - - - Formatting For MSFT_PrintJob (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrintJob - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrintJob - - - - - - - Id - - - ComputerName - - - PrinterName - - - UserName - - - DocumentName - - - Datatype - - - Priority - - - Position - - - SubmittedTime - - - Size - - - JobTime - - - PagesPrinted - - - TotalPages - - - JobStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.types.ps1xml deleted file mode 100644 index b334c47..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob.types.ps1xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrintJob - - - JobStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrintJob.JobStatus]($this.PSBase.CimInstanceProperties['JobStatus'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrintJob - - - JobStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrintJob.JobStatus]($this.PSBase.CimInstanceProperties['JobStatus'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob_v1.0.cdxml deleted file mode 100644 index 5a0a7b4..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrintJob_v1.0.cdxml +++ /dev/null @@ -1,386 +0,0 @@ - - - - 1.0 - PrintJob - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.format.ps1xml deleted file mode 100644 index fc3dfca..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.format.ps1xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - Formatting For MSFT_Printer (Table View for ALL subclasses.) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_Printer - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_3DPrinter - - - - - 30 - - - 15 - - - 12 - - - 25 - - - 15 - - - 8 - - - 10 - - - 15 - - - - - - - Name - - - ComputerName - - - Type - - - DriverName - - - PortName - - - Shared - - - Published - - - DeviceType - - - - - - - - Formatting For MSFT_Printer (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_Printer - - - - - - - Name - - - ComputerName - - - Type - - - ShareName - - - PortName - - - DriverName - - - Location - - - Comment - - - SeparatorPageFile - - - PrintProcessor - - - Datatype - - - Shared - - - Published - - - DeviceType - - - PermissionSDDL - - - RenderingMode - - - KeepPrintedJobs - - - Priority - - - DefaultJobPriority - - - StartTime - - - UntilTime - - - PrinterStatus - - - JobCount - - - DisableBranchOfficeLogging - - - BranchOfficeOfflineLogSizeMB - - - WorkflowPolicy - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.types.ps1xml deleted file mode 100644 index 9515faa..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer.types.ps1xml +++ /dev/null @@ -1,38 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_Printer - - - RenderingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Printer.RenderingModeEnum]($this.PSBase.CimInstanceProperties['RenderingMode'].Value) - - - param($value) - $this.PSBase.CimInstanceProperties['RenderingMode'].Value = - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Printer.RenderingModeEnum]$value - - - - PrinterStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Printer.PrinterStatus]($this.PSBase.CimInstanceProperties['PrinterStatus'].Value) - - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Printer.TypeEnum]($this.PSBase.CimInstanceProperties['Type'].Value) - - - - DeviceType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.Printer.DeviceTypeEnum]($this.PSBase.CimInstanceProperties['DeviceType'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.format.ps1xml deleted file mode 100644 index 918a146..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.format.ps1xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - Formatting For MSFT_PrinterConfiguration (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrinterConfiguration - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterConfiguration - - - - - 15 - - - 15 - - - 10 - - - 10 - - - 20 - - - - - - - PrinterName - - - ComputerName - - - Collate - - - Color - - - DuplexingMode - - - - - - - - Formatting For MSFT_PrinterConfiguration (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrinterConfiguration - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterConfiguration - - - - - - - PrinterName - - - ComputerName - - - Collate - - - Color - - - DuplexingMode - - - PaperSize - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.types.ps1xml deleted file mode 100644 index 0567215..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration.types.ps1xml +++ /dev/null @@ -1,31 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PrinterConfiguration - - - DuplexingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrinterConfiguration.DuplexingModeEnum]($this.PSBase.CimInstanceProperties['DuplexingMode'].Value) - - - param($value) - $this.PSBase.CimInstanceProperties['DuplexingMode'].Value = - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrinterConfiguration.DuplexingModeEnum]$value - - - - PaperSize - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrinterConfiguration.PaperSizeEnum]($this.PSBase.CimInstanceProperties['PaperSize'].Value) - - - param($value) - $this.PSBase.CimInstanceProperties['PaperSize'].Value = - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrinterConfiguration.PaperSizeEnum]$value - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration_v1.0.cdxml deleted file mode 100644 index 293d5a8..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterConfiguration_v1.0.cdxml +++ /dev/null @@ -1,323 +0,0 @@ - - - - 1.0 - PrintConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver.format.ps1xml deleted file mode 100644 index 699a36c..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver.format.ps1xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Formatting For MSFT_PrinterDriver (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterDriver - - - - - 35 - - - 18 - - - 15 - - - 25 - - - - - - - Name - - - PrinterEnvironment - - - MajorVersion - - - Manufacturer - - - - - - - - Formatting For MSFT_PrinterDriver (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterDriver - - - - - - - Name - - - ComputerName - - - PrinterEnvironment - - - Path - - - DataFile - - - ConfigFile - - - HelpFile - - - DependentFiles - - - Monitor - - - DefaultDatatype - - - Date - - - MajorVersion - - - DriverVersion - - - Manufacturer - - - OEMUrl - - - HardwareID - - - Provider - - - PrintProcessor - - - VendorSetup - - - ColorProfiles - - - InfPath - - - IsPackageAware - - - CoreDriverDependencies - - - PreviousCompatibleNames - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver_v1.0.cdxml deleted file mode 100644 index b336d54..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterDriver_v1.0.cdxml +++ /dev/null @@ -1,114 +0,0 @@ - - - - 1.0 - PrinterDriver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag.format.ps1xml deleted file mode 100644 index f5f7e26..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag.format.ps1xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - Formatting For MSFT_PrinterNfcTag (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterNfcTag - - - - - 30 - - - 30 - - - 10 - - - - - - - SharePath - - - WsdAddress - - - Locked - - - - - - - - Formatting For MSFT_PrinterNfcTag (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterNfcTag - - - - - - - SharePath - - - WsdAddress - - - Locked - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTagTasks_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTagTasks_v1.0.cdxml deleted file mode 100644 index 33429f0..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTagTasks_v1.0.cdxml +++ /dev/null @@ -1,77 +0,0 @@ - - - - 1.0 - PrinterNfcTag - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag_v1.0.cdxml deleted file mode 100644 index 92047a6..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterNfcTag_v1.0.cdxml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1.0 - PrinterNfcTag - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort.format.ps1xml deleted file mode 100644 index 857e07d..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort.format.ps1xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Formatting For MSFT_PrinterPort (Table View for ALL subclasses.) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterPort - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LocalPrinterPort - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_TcpIpPrinterPort - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_AdaptivePrinterPort - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_LprPrinterPort - - - - - 20 - - - 20 - - - 20 - - - 20 - - - - - - - Name - - - ComputerName - - - Description - - - PortMonitor - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPortTasks_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPortTasks_v1.0.cdxml deleted file mode 100644 index b350a08..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPortTasks_v1.0.cdxml +++ /dev/null @@ -1,158 +0,0 @@ - - - - 1.0 - PrinterPort - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort_v1.0.cdxml deleted file mode 100644 index a4a0be5..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterPort_v1.0.cdxml +++ /dev/null @@ -1,57 +0,0 @@ - - - - 1.0 - PrinterPort - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.format.ps1xml deleted file mode 100644 index f85f3d0..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.format.ps1xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - Formatting For MSFT_PrinterProperty (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterProperty - - - - - 20 - - - 20 - - - 20 - - - 10 - - - 30 - - - - - - - ComputerName - - - PrinterName - - - PropertyName - - - Type - - - Value - - - - - - - - Formatting For MSFT_PrinterProperty (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterProperty - - - - - - - ComputerName - - - PrinterName - - - PropertyName - - - Type - - - Value - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.types.ps1xml deleted file mode 100644 index 753fe9b..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty.types.ps1xml +++ /dev/null @@ -1,15 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_PrinterProperty - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.PrinterProperty.PropertyTypeEnum]($this.PSBase.CimInstanceProperties['Type'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty_v1.0.cdxml deleted file mode 100644 index 40dd233..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_PrinterProperty_v1.0.cdxml +++ /dev/null @@ -1,138 +0,0 @@ - - - - 1.0 - PrinterProperty - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer_v1.0.cdxml deleted file mode 100644 index 6ac7272..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_Printer_v1.0.cdxml +++ /dev/null @@ -1,639 +0,0 @@ - - - - 1.0 - Printer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.format.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.format.ps1xml deleted file mode 100644 index 755838e..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.format.ps1xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Formatting For MSFT_TcpIpPrinterPort (Table View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_TcpIpPrinterPort - - - - - 20 - - - 20 - - - 20 - - - 20 - - - 20 - - - - - - - Name - - - ComputerName - - - Description - - - PrinterHostAddress - - - PortNumber - - - - - - - - Formatting For MSFT_TcpIpPrinterPort (List View) - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_TcpIpPrinterPort - - - - - - - Name - - - ComputerName - - - Description - - - Protocol - - - PrinterHostAddress - - - PrinterHostIP - - - PortNumber - - - SNMPIndex - - - SNMPCommunity - - - SNMPEnabled - - - LprQueueName - - - LprByteCounting - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.types.ps1xml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.types.ps1xml deleted file mode 100644 index e992647..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort.types.ps1xml +++ /dev/null @@ -1,15 +0,0 @@ - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_TcpIpPrinterPort - - - Protocol - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.TcpIpPort.ProtocolEnum]($this.PSBase.CimInstanceProperties['Protocol'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort_v1.0.cdxml deleted file mode 100644 index b2b77a2..0000000 --- a/newton-cn/bin/v1.0/Modules/PrintManagement/MSFT_TcpIpPrinterPort_v1.0.cdxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1.0 - PrinterPort - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/PrintManagement/PrintManagement.psd1 b/newton-cn/bin/v1.0/Modules/PrintManagement/PrintManagement.psd1 deleted file mode 100644 index abc98a8b6ec165519408827caec5768228a8d618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8578 zcmcgxTW=dh6h6;L{D+nD;8vn0Y12}WkZR$i4N9Y`4wScQeXT`&!FG~Xh#$nC1io*M zH#4(W?+r!k>}BSh@7&MK{QJ+5d@Wzekp%KqRx*}bxseH;781%*<}$_8R(5zZ#rKW* z;*RUcJG`A^><$z-CzKiHEO7B%XHQ?b@R!#s`P2N5p2`1L%-Dd}9DJ5|UINQPhURU6 zcT>FE$tQf@#!z$(Ef;^B){mIckrV0SQbdX;kPGSK+bw8LAU!#(%rj;G1Mer$#}~Yr zJdvj|l4E&>yHotWl;^k$@p}w>PcUMF z>l9oiXOZHB6{6MsJStG)7LV2&g|IWP3_-5Y2&rYM79&682V$E8)3U+$BW};?rzuD8XsMNmg zTcIsU(k)R(o~~TUnOws&&fy~(qxaC;Mt-m4KYh&If#w9iNs5QyXSG=&YcY11wOElt z{EkdzV3dzQ`xbBL;g7(J)np>y;ORGH+85@oho~Ck{?t5OAVPWnxROjsM7>Nr=^ke5 zDI=FTiTR2(n01MFtb(jT%(|4Baxz}E?y_QW7RSsG=PQg4AL9Ma#5c7N)#LzFn2S_< zTJc=kq&nNvOjcWF@Au&4W)8RZQU=QT3fh01sPY3-appikxu!tDeuHx!A!Dp@cVg^d zwLt4?wz>r_mD$QWGLn+U2Kke8nB&@z*+srZOsq`jV|_7A>LcK}MowKD3DTwg47=Ry zWu_(7*0f>>8>^k~jdfLe>jTAhig;(^?Vy$o5R2FH(dp!<%`PmY$hQxcQLG&kHS~iZ z_b;0^tLxHOe`aFUb{cJQ{TUpGg)+H_ui>d{^l|H$URVPefz2ZA!PX&ovEyPtV7qGC z;!vJ0{x}8ZP5L3Rf5}Bp%krZ4o*QYo8pw{GRYJ*N}b$6j3T?i%a;o){y^)UvXAxR=z{? zNeISW!-Fk{S91_Xpbe7ELSyGTLFJ|&{tX7uDbkV*j zv$AIM336YwHs`vQHdvUiX*<@Wm!!q)eCE;7>`QMNV_(>}Ggo27GTRke2fG|;blfc0 z6wN3Dm#6m{wP@$bnw=q=pw5VCicURECM9?K-lj0phun2w6Lhuil&8d9q%g&^-P}@* zDtjZYqU*;DF=kP#XYV}9)#E3NY8@N#Opkkq&1jRICinFGD6fNWi>w^SSC!rXa{9=c z%s)x$)$&g|o%*poFgwm%Ni1V=Syi7OVCgwDn)Dt&%H1k^i5a@@tt%exW%KmPUGcE; z@&s~({$5X@2U6}@TMp?6wC3MIM(Qwt zRd^Q~3AtNL?mP*J`jF@xz|~c~)uE4||G-~+6aRGS4KUsS(*^v8tNZ{b;qUR}u3ghl z6yh_ZdCG++xjWF^$`A4_{z7B*E<9q3Ct7`pyF2(A&(@D|J;fcz>)GepIa_5s>*+PS uxS_GaJM4j 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 diff --git a/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.dll-Help.xml b/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.dll-Help.xml deleted file mode 100644 index 81bb2bd..0000000 --- a/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.dll-Help.xml +++ /dev/null @@ -1,749 +0,0 @@ - - - - -ConvertTo-ProcessMitigationPolicy -ConvertTo -ProcessMitigationPolicy -Converts an mitigation policy file formats. - - - -Converts an EMET policy file or pinning rule file to a new Windows 10 format. - - -ConvertTo-ProcessMitigationPolicy -EMETFilePath -File that either contains cert pinning rules or an existing EMET process mitigation configuration file. - - -String -String - -None - -OutputFilePath -Resulting new Windows10 process mitigation/pinning rules format. - - -String -String - -None - - - -EMETFilePath -File that either contains cert pinning rules or an existing EMET process mitigation configuration file. - - -String -String - -None - -OutputFilePath -Resulting new Windows10 process mitigation/pinning rules format. - - -String -String - -None - - -System.String - - - - - - -System.Object - - - - - - - - - - -Example 1 -PS C:\> ConvertTo-ProcessMitigationPolicy -EMETFile policy.xml -Output result.xml -Converts EMET file policy.xml to result.xml, may also generate a CI file CI-result.xml if necessary. - - - - - - - -Get-ProcessMitigation -Get -ProcessMitigation -Gets the current process mitigation settings, either from the registry, from a running process, or saves all to a XML. - - - -Gets all process mitigation settings either by process name (either running or from -Registry), or by process ID. Can also save all settings to an XML file. - - -Get-ProcessMitigation -FullPolicy -Returns every processes' current mitigation settings in the registry - - -SwitchParameter - -False - - -Get-ProcessMitigation -Id -Process Id to retrieve current running process mitigation settings from - - -Int32[] -Int32[] - -None - - -Get-ProcessMitigation -Name -Current process name to get current running (Or from registry) process mitigation settings from one (Can be more than one instance) - - -String -String - -None - -RunningProcesses -Pull the current process mitigation settings from a running instance instead of the registry. - - -SwitchParameter - -False - - -Get-ProcessMitigation -RegistryConfigFilePath -File to save the current registry process mitigation configuration to - - -String -String - -None - - -Get-ProcessMitigation -System -Pulls the current system defaults for process mitigations. - - -SwitchParameter - -False - - - -FullPolicy -Returns every processes' current mitigation settings in the registry - - -SwitchParameter -SwitchParameter - -False - -Id -Process Id to retrieve current running process mitigation settings from - - -Int32[] -Int32[] - -None - -Name -Current process name to get current running (Or from registry) process mitigation settings from one (Can be more than one instance) - - -String -String - -None - -RegistryConfigFilePath -File to save the current registry process mitigation configuration to - - -String -String - -None - -RunningProcesses -Pull the current process mitigation settings from a running instance instead of the registry. - - -SwitchParameter -SwitchParameter - -False - -System -Pulls the current system defaults for process mitigations. - - -SwitchParameter -SwitchParameter - -False - - -System.Int32[] - - - - - - -System.Object - - - - - - - - - - -Example 1 -PS C:\> Get-ProcessMitigation -Name notepad.exe -RunningProcess -Gets the current settings on all running instances of notepad.exe - - - -Example 2 -PS C:\> Get-ProcessMitigation -Name notepad.exe -Gets the current settings in the registry for notepad.exe - - - -Example 3 -PS C:\> Get-ProcessMitigation -Id 1304 -Gets the current settings for the running process with pid 1304 - - - -Example 4 -PS C:\> Get-ProcessMitigation -RegistryConfigFilePath settings.xml -Gets the all process mitigation settings from the registry and saves them to the xml file settings.xml - - - -Example 5 -PS C:\> Get-ProcessMitigation -FullPolicy -Gets all policies for all processes set in the registry. - - - -Example 6 -PS C:\> Get-ProcessMitigation -System -Gets the current system process mitigation defaults stored in the registry. - - - -Example 7 -PS C:\> Get-Process notepad | Get-ProcessMitigation -Gets the current process mitigation settings for all running instances of notepad.exe - - - - - - - -Set-ProcessMitigation -Set -ProcessMitigation -Commands to enable and disable process mitigations or set them in bulk from an XML file. - - - -Used to turn on and off various process mitigation settings. Can also apply (Or Validate) an XML file to apply settings for many processes at once. - - -Set-ProcessMitigation -Name -Name of the process to apply mitigation settings to. Can be in the format "notepad" or "notepad.exe" - - -String -String - -None - -Disable -Comma separated list of mitigations to disable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -DEP -EmulateAtlThunks -SEHOP -ForceRelocate -RequireInfo -BottomUp -HighEntropy -StrictHandle -DisableWin32kSystemCalls -AuditSystemCall -ExtensionPoint -DynamicCode -AuditDynamicCode -CFG -SuppressExports -StrictCFG -BlockNonMicrosoftSigned -AllowStoreSigned -AuditMicrosoftSigned -AuditStoreSigned -EnforceModuleDepencySigning -DisableNonSystemFonts -FontAuditOnly -AuditFont -BlockRemoteImages -BlockLowLabel -PreferSystem32 -AuditImageLoad -EnableExportAddressFilter -AuditEnableExportAddressFilter -EnableExportAddressFilterPlus -AuditEnableExportAddressFilterPlus -EnableImportAddressFilter -AuditEnableImportAddressFilter -EnableRopStackPivot -AuditEnableRopStackPivot -EnableRopCallerCheck -AuditEnableRopCallerCheck -EnableRopSimExec -AuditEnableRopSimExec -SEHOP -AuditSEHOP -SEHOPTelemetry -TerminateOnHeapError -DisallowChildProcessCreation -AuditChildProcess -UserShadowStack -UserShadowStackStrictMode -AuditUserShadowStack - -String[] -String[] - -None - -EAFModules -Modules to be added to the EAF+ mitigation. - - -String[] -String[] - -None - -Enable -Comma separated list of mitigations to enable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -DEP -EmulateAtlThunks -SEHOP -ForceRelocate -RequireInfo -BottomUp -HighEntropy -StrictHandle -DisableWin32kSystemCalls -AuditSystemCall -ExtensionPoint -DynamicCode -AuditDynamicCode -CFG -SuppressExports -StrictCFG -BlockNonMicrosoftSigned -AllowStoreSigned -AuditMicrosoftSigned -AuditStoreSigned -EnforceModuleDepencySigning -DisableNonSystemFonts -FontAuditOnly -AuditFont -BlockRemoteImages -BlockLowLabel -PreferSystem32 -AuditImageLoad -EnableExportAddressFilter -EnableExportAddressFilterPlus -EnableImportAddressFilter -EnableRopStackPivot -EnableRopCallerCheck -EnableRopSimExec -SEHOP -AuditSEHOP -SEHOPTelemetry -TerminateOnHeapError -DisallowChildProcessCreation -AuditChildProcess -UserShadowStack -UserShadowStackStrictMode -AuditUserShadowStack - -String[] -String[] - -None - -Force -Overrides a system setting either on or off depending on the level this is set at. Will force "on"/"off" all mitigations provided in the -Enable list - - -on -off -notset - -String -String - -None - -Remove -Removes a mitigation entry from the registry. - - -SwitchParameter - -False - -Reset -Resets a specific mitigation entry to defer. - - -SwitchParameter - -False - - -Set-ProcessMitigation -Disable -Comma separated list of mitigations to disable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -DEP -EmulateAtlThunks -SEHOP -ForceRelocate -RequireInfo -BottomUp -HighEntropy -StrictHandle -SystemCall -AuditSystemCall -ExtensionPoint -DynamicCode -AuditDynamicCode -CFG -SuppressExports -StrictCFG -BlockNonMicrosoftSigned -AllowStoreSigned -AuditMicrosoftSigned -AuditStoreSigned -EnforceModuleDepencySigning -DisableNonSystemFonts -FontAuditOnly -AuditFont -BlockRemoteImages -BlockLowLabel -PreferSystem32 -AuditImageLoad -EnableExportAddressFilter -EnableExportAddressFilterPlus -EnableImportAddressFilter -EnableRopStackPivot -EnableRopCallerCheck -EnableRopSimExec -SEHOP -AuditSEHOP -SEHOPTelemetry -TerminateOnHeapError -DisallowChildProcessCreation -AuditChildProcess -UserShadowStack -UserShadowStackStrictMode -AuditUserShadowStack - -String[] -String[] - -None - -EAFModules -Modules to be added to the EAF+ mitigation. - - -String[] -String[] - -None - -Enable -Comma separated list of mitigations to enable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -DEP -EmulateAtlThunks -SEHOP -ForceRelocate -RequireInfo -BottomUp -HighEntropy -StrictHandle -SystemCall -AuditSystemCall -ExtensionPoint -DynamicCode -AuditDynamicCode -CFG -SuppressExports -StrictCFG -BlockNonMicrosoftSigned -AllowStoreSigned -AuditMicrosoftSigned -AuditStoreSigned -EnforceModuleDepencySigning -DisableNonSystemFonts -FontAuditOnly -AuditFont -BlockRemoteImages -BlockLowLabel -PreferSystem32 -AuditImageLoad -EnableExportAddressFilter -EnableExportAddressFilterPlus -EnableImportAddressFilter -EnableRopStackPivot -EnableRopCallerCheck -EnableRopSimExec -SEHOP -AuditSEHOP -SEHOPTelemetry -TerminateOnHeapError -DisallowChildProcessCreation -AuditChildProcess -UserShadowStack -UserShadowStackStrictMode -AuditUserShadowStack - -String[] -String[] - -None - -Force -Overrides a system setting either on or off depending on the level this is set at. Will force "on"/"off" all mitigations provided in the -Enable list - - -on -off -notset - -String -String - -None - -Remove -Removes a mitigation entry from the registry. - - -SwitchParameter - -False - -Reset -Resets a specific mitigation entry to defer. - - -SwitchParameter - -False - -System -Used to configure system defaults rather than individual apps. - - -SwitchParameter - -False - - -Set-ProcessMitigation -IsValid -Set to check the given XML file for validity. Requires local .xsd - - -SwitchParameter - -False - -PolicyFilePath -An XML file with mitigation settings for many processes that is applied to the registry - - -String -String - -None - - - -Disable -Comma separated list of mitigations to disable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -String[] -String[] - -None - -EAFModules -Modules to be added to the EAF+ mitigation. - - -String[] -String[] - -None - -Enable -Comma separated list of mitigations to enable. Disable list takes priority over enable list. If specified in both, it will be disabled. - - -String[] -String[] - -None - -Force -Overrides a system setting either on or off depending on the level this is set at. Will force "on"/"off" all mitigations provided in the -Enable list - - -String -String - -None - -IsValid -Set to check the given XML file for validity. Requires local .xsd - - -SwitchParameter -SwitchParameter - -False - -Name -Name of the process to apply mitigation settings to. Can be in the format "notepad" or "notepad.exe" - - -String -String - -None - -PolicyFilePath -An XML file with mitigation settings for many processes that is applied to the registry - - -String -String - -None - -Remove -Removes a mitigation entry from the registry. - - -SwitchParameter -SwitchParameter - -False - -Reset -Resets a specific mitigation entry to defer. - - -SwitchParameter -SwitchParameter - -False - -System -Used to configure system defaults rather than individual apps. - - -SwitchParameter -SwitchParameter - -False - - -System.String - - - - - - -System.Object - - - - - - - - - - -Example 1 -PS C:\> set-ProcessMitigation -Name Notepad.exe -Enable SEHOP -Disable MandatoryASLR -Gets the current process mitigation for "notepad.exe" from the registry and then enables SEHOP, and disables MandatoryASLR. - - - -Example 2 -PS C:\> set-ProcessMitigation -PolicyFilePath settings.xml -Applies all settings inside settings.xml - - - -Example 3 -PS C:\> set-ProcessMitigation -PolicyFilePath settings.xml -IsValid -Checks if the given file is a valid settings.xml, requires local .xsd - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.ps1xml b/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.ps1xml deleted file mode 100644 index b36da0f..0000000 --- a/newton-cn/bin/v1.0/Modules/ProcessMitigations/Microsoft.ProcessMitigations.Commands.ps1xml +++ /dev/null @@ -1,1422 +0,0 @@ - - - - - - - AppMitigations - - Microsoft.Samples.PowerShell.Commands.AppMitigations - - - - - - - depControl - - - - - Enable : - - Enable - - - EmulateAtlThunks : - - EmulateAtlThunks - - - Override DEP : - - OverrideDEP - - - - - - - - - - - aslrControl - - - - - BottomUp : - - BottomUp - - - Override BottomUp : - - OverrideBottomUp - - - ForceRelocateImages : - - ForceRelocateImages - - - RequireInfo : - - RequireInfo - - - Override ForceRelocate : - - OverrideForceRelocateImages - - - HighEntropy : - - HighEntropy - - - Override High Entropy : - - OverrideHighEntropy - - - - - - - - - - - strictHandleControl - - - - - Enable : - - Enable - - - Override StrictHandle : - - OverrideStrictHandle - - - - - - - - - - - systemCallControl - - - - - DisableWin32kSystemCalls : - - DisableWin32kSystemCalls - - - Audit : - - Audit - - - Override SystemCall : - - OverrideSystemCall - - - - - - - - - - - extensionPointControl - - - - - DisableExtensionPoints : - - DisableExtensionPoints - - - Override ExtensionPoint : - - OverrideExtensionPoint - - - - - - - - - - - dynamicCodeControl - - - - - BlockDynamicCode : - - BlockDynamicCode - - - AllowThreadsToOptOut : - - AllowThreadsToOptOut - - - Audit : - - Audit - - - Override DynamicCode : - - OverrideDynamicCode - - - - - - - - - - - CFGControl - - - - - Enable : - - Enable - - - SuppressExports : - - SuppressExports - - - Override CFG : - - OverrideCFG - - - StrictControlFlowGuard : - - StrictControlFlowGuard - - - Override StrictCFG : - - OverrideStrictCFG - - - - - - - - - - - binarySignatureControl - - - - - MicrosoftSignedOnly : - - MicrosoftSignedOnly - - - AllowStoreSignedBinaries : - - AllowStoreSignedBinaries - - - EnforceModuleDependencySigning : - - EnforceModuleDependencySigning - - - AuditMicrosoftSignedOnly : - - Audit - - - AuditStoreSigned : - - AuditStoreSigned - - - AuditEnforceModuleDependencySigning: - - AuditEnforceModuleDependencySigning - - - Override MicrosoftSignedOnly : - - OverrideMicrosoftSignedOnly - - - Override DependencySigning : - - OverrideEnforceModuleDependencySigning - - - - - - - - - - - fontDisableControl - - - - - DisableNonSystemFonts : - - DisableNonSystemFonts - - - Audit : - - Audit - - - Override FontDisable : - - OverrideFontDisable - - - - - - - - - - - imageLoadControl - - - - - BlockRemoteImageLoads : - - BlockRemoteImageLoads - - - AuditRemoteImageLoads : - - AuditRemoteImageLoads - - - Override BlockRemoteImages : - - OverrideBlockRemoteImageLoads - - - BlockLowLabelImageLoads : - - BlockLowLabelImageLoads - - - AuditLowLabelImageLoads : - - AuditLowLabelImageLoads - - - Override BlockLowLabel : - - OverrideBlockLowLabel - - - PreferSystem32 : - - PreferSystem32 - - - AuditPreferSystem32 : - - AuditPreferSystem32 - - - Override PreferSystem32 : - - OverridePreferSystem32 - - - - - - - - - - - payloadControl - - - - - EnableExportAddressFilter : - - EnableExportAddressFilter - - - AuditEnableExportAddressFilter : - - AuditEnableExportAddressFilter - - - Override ExportAddressFilter : - - OverrideEnableExportAddressFilter - - - EnableExportAddressFilterPlus : - - EnableExportAddressFilterPlus - - - AuditEnableExportAddressFilterPlus : - - AuditEnableExportAddressFilterPlus - - - Override ExportAddressFilterPlus : - - OverrideEnableExportAddressFilterPlus - - - EAFModules : - - EAFModules - - - EnableImportAddressFilter : - - EnableImportAddressFilter - - - AuditEnableImportAddressFilter : - - AuditEnableImportAddressFilter - - - Override ImportAddressFilter : - - OverrideEnableImportAddressFilter - - - EnableRopStackPivot : - - EnableRopStackPivot - - - AuditEnableRopStackPivot : - - AuditEnableRopStackPivot - - - Override EnableRopStackPivot : - - OverrideEnableRopStackPivot - - - EnableRopCallerCheck : - - EnableRopCallerCheck - - - AuditEnableRopCallerCheck : - - AuditEnableRopCallerCheck - - - Override EnableRopCallerCheck : - - OverrideEnableRopCallerCheck - - - EnableRopSimExec : - - EnableRopSimExec - - - AuditEnableRopSimExec : - - AuditEnableRopSimExec - - - Override EnableRopSimExec : - - OverrideEnableRopSimExec - - - - - - - - - - - SEHOPControl - - - - - Enable : - - Enable - - - TelemetryOnly : - - TelemetryOnly - - - Audit : - - Audit - - - Override SEHOP : - - OverrideSEHOP - - - - - - - - - - - HeapControl - - - - - TerminateOnError : - - TerminateOnError - - - Override HEAP : - - OverrideHeap - - - - - - - - - - - ChildProcessControl - - - - - DisallowChildProcessCreation : - - DisallowChildProcessCreation - - - Audit : - - Audit - - - Override ChildProcess : - - OverrideChildProcess - - - - - - - - - - - UserShadowStackControl - - - - - UserShadowStack : - - UserShadowStack - - - UserShadowStackStrictMode : - - UserShadowStackStrictMode - - - AuditUserShadowStack : - - AuditUserShadowStack - - - Override UserShadowStack : - - OverrideUserShadowStack - - - - - - - - - - - - - - - - - ProcessName : - - ProcessName - - - Source : - - Source - - - Id : - - Id - - - - DEP: - - - 4 - - - Dep - depControl - - - - - ASLR: - - - 4 - - - aslr - aslrControl - - - - - StrictHandle: - - - 4 - - - strictHandle - strictHandleControl - - - - - System Call: - - - 4 - - - SystemCall - systemCallControl - - - - - ExtensionPoint: - - - 4 - - - extensionPoint - extensionPointControl - - - - - DynamicCode: - - - 4 - - - dynamicCode - dynamicCodeControl - - - - - CFG: - - - 4 - - - cfg - CFGControl - - - - - BinarySignature: - - - 4 - - - binarySignature - binarySignatureControl - - - - - FontDisable: - - - 4 - - - fontDisable - fontDisableControl - - - - - ImageLoad: - - - 4 - - - imageLoad - imageLoadControl - - - - - Payload: - - - 4 - - - Payload - payloadControl - - - - - SEHOP: - - - 4 - - - SEHOP - SEHOPControl - - - - - Heap: - - - 4 - - - Heap - HeapControl - - - - - Child Process: - - - 4 - - - ChildProcess - ChildProcessControl - - - - - User Shadow Stack: - - - 4 - - - UserShadowStack - UserShadowStackControl - - - - - - - - - - - - ProcessMitigations - - Microsoft.Samples.PowerShell.Commands.ProcessMitigations - - - - - - - depControl - - - - - Enable : - - Enable - - - EmulateAtlThunks : - - EmulateAtlThunks - - - - - - - - - - - aslrControl - - - - - BottomUp : - - BottomUp - - - ForceRelocateImages : - - ForceRelocateImages - - - RequireInfo : - - RequireInfo - - - HighEntropy : - - HighEntropy - - - - - - - - - - - strictHandleControl - - - - - Enable : - - Enable - - - - - - - - - - - systemCallControl - - - - - DisableWin32kSystemCalls : - - DisableWin32kSystemCalls - - - Audit : - - Audit - - - - - - - - - - - extensionPointControl - - - - - DisableExtensionPoints : - - DisableExtensionPoints - - - - - - - - - - - dynamicCodeControl - - - - - BlockDynamicCode : - - BlockDynamicCode - - - AllowThreadsToOptOut : - - AllowThreadsToOptOut - - - Audit : - - Audit - - - - - - - - - - - CFGControl - - - - - Enable : - - Enable - - - SuppressExports : - - SuppressExports - - - StrictControlFlowGuard : - - StrictControlFlowGuard - - - - - - - - - - - binarySignatureControl - - - - - MicrosoftSignedOnly : - - MicrosoftSignedOnly - - - AllowStoreSignedBinaries : - - AllowStoreSignedBinaries - - - AuditMicrosoftSignedOnly : - - Audit - - - AuditStoreSigned : - - AuditStoreSigned - - - - - - - - - - - fontDisableControl - - - - - DisableNonSystemFonts : - - DisableNonSystemFonts - - - Audit : - - Audit - - - - - - - - - - - imageLoadControl - - - - - BlockRemoteImageLoads : - - BlockRemoteImageLoads - - - AuditRemoteImageLoads : - - AuditRemoteImageLoads - - - BlockLowLabelImageLoads : - - BlockLowLabelImageLoads - - - AuditLowLabelImageLoads : - - AuditLowLabelImageLoads - - - PreferSystem32 : - - PreferSystem32 - - - AuditPreferSystem32 : - - AuditPreferSystem32 - - - - - - - - - - - payloadControl - - - - - EnableExportAddressFilter : - - EnableExportAddressFilter - - - AuditEnableExportAddressFilter : - - AuditEnableExportAddressFilter - - - EnableExportAddressFilterPlus : - - EnableExportAddressFilterPlus - - - AuditEnableExportAddressFilterPlus : - - AuditEnableExportAddressFilterPlus - - - EnableImportAddressFilter : - - EnableImportAddressFilter - - - AuditEnableImportAddressFilter : - - AuditEnableImportAddressFilter - - - EnableRopStackPivot : - - EnableRopStackPivot - - - AuditEnableRopStackPivot : - - AuditEnableRopStackPivot - - - EnableRopCallerCheck : - - EnableRopCallerCheck - - - AuditEnableRopCallerCheck : - - AuditEnableRopCallerCheck - - - EnableRopSimExec : - - EnableRopSimExec - - - AuditEnableRopCallerCheck : - - AuditEnableRopCallerCheck - - - - - - - - - - - ChildProcessControl - - - - - DisallowChildProcessCreation : - - DisallowChildProcessCreation - - - Audit : - - Audit - - - - - - - - - - - UserShadowStackControl - - - - - UserShadowStack : - - UserShadowStack - - - UserShadowStackStrictMode : - - UserShadowStackStrictMode - - - AuditUserShadowStack : - - AuditUserShadowStack - - - SetContextIpValidation : - - SetContextIpValidation - - - AuditSetContextIpValidation : - - AuditSetContextIpValidation - - - BlockNonCetBinaries : - - BlockNonCetBinaries - - - BlockNonCetBinariesNonEhcont : - - BlockNonCetBinariesNonEhcont - - - AuditBlockNonCetBinaries : - - AuditBlockNonCetBinaries - - - - - - - - - - - - - - - - - ProcessName : - - ProcessName - - - Source : - - Source - - - Id : - - Id - - - - DEP: - - - 4 - - - Dep - depControl - - - - - ASLR: - - - 4 - - - aslr - aslrControl - - - - - StrictHandle: - - - 4 - - - strictHandle - strictHandleControl - - - - - System Call: - - - 4 - - - SystemCall - systemCallControl - - - - - ExtensionPoint: - - - 4 - - - extensionPoint - extensionPointControl - - - - - DynamicCode: - - - 4 - - - dynamicCode - dynamicCodeControl - - - - - CFG: - - - 4 - - - cfg - CFGControl - - - - - BinarySignature: - - - 4 - - - binarySignature - binarySignatureControl - - - - - FontDisable: - - - 4 - - - fontDisable - fontDisableControl - - - - - ImageLoad: - - - 4 - - - imageLoad - imageLoadControl - - - - - Payload: - - - 4 - - - Payload - payloadControl - - - - - Child Process: - - - 4 - - - ChildProcess - ChildProcessControl - - - - - User Shadow Stack: - - - 4 - - - UserShadowStack - UserShadowStackControl - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ProcessMitigations/ProcessMitigations.psd1 b/newton-cn/bin/v1.0/Modules/ProcessMitigations/ProcessMitigations.psd1 deleted file mode 100644 index 7185004..0000000 --- a/newton-cn/bin/v1.0/Modules/ProcessMitigations/ProcessMitigations.psd1 +++ /dev/null @@ -1,15 +0,0 @@ -@{ -GUID = "{1e8f5a4c-f11b-41a5-bdbd-4695ca4a503e}" -Author = "Microsoft Corporation" -CompanyName = "Microsoft Corporation" -Copyright = "© Microsoft Corporation. All rights reserved." -RootModule = 'Microsoft.ProcessMitigations.Commands.dll' -ModuleVersion = "1.0.12" -PowerShellVersion = '5.1' -CLRVersion = "2.0" -FormatsToProcess = 'Microsoft.ProcessMitigations.Commands.ps1xml' -CmdletsToExport="Get-ProcessMitigation", "Set-ProcessMitigation", "ConvertTo-ProcessMitigationPolicy" -# Location from which to download updateable help -HelpInfoURI = "https://go.microsoft.com/fwlink/?linkid=845399" -CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_add.reg b/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_add.reg deleted file mode 100644 index 88b6d2d..0000000 --- a/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_add.reg +++ /dev/null @@ -1,176 +0,0 @@ -Windows Registry Editor Version 5.00 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning] -"Guid"="{0c225950-4d2c-4d9d-9b19-ec40855b7eec}" -"Start"=dword:00000001 -"Status"=dword:00000000 -"FileName"="{LogFile}" -"FileMax"=dword:0000000A -"BufferSize"=dword:00000040 -"MaxFileSize"=dword:00000400 -"LogFileMode"=dword:00000022 -"FlushTimer"=dword:00000001 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{A6A847B7-4429-49AA-BBA6-2AD8C191AC8C}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{0BBE6221-EF09-4A3F-82EE-BE00DBB6A98A}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{42C60CEA-0FE7-4541-A86B-9E11F95BD9BF}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{B876B1FC-C7F1-443E-9012-86677F7DE580}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{7EDBED09-1FF7-4FEE-B8C3-5DB694420830}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{82ADD491-01D7-4B85-9EAD-192C3CAACA23}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{16E12400-A2D8-44B7-9479-004568EC7819}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{0383D92C-2337-4F25-A0B5-A51767F04746}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{7F99598F-B2C1-4371-9911-63DEE13B9EB1}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{B1F30020-8BC3-4888-BB1B-4DD681F24209}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{55239D60-0EB6-495B-874E-15DE5D5F9A70}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{B55883E6-6C45-45C2-AB9D-800BB7B66B13}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{2BF4B6BA-556E-4D05-8534-CAFEDF19FED8}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{00BB69FC-60BC-4502-9438-25608F375CCB}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{E74EFD1A-B62D-4B83-AB00-66F4A166A2D3}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{F9E3B648-9AF1-4DC3-9A8E-BF42C0FBCE9A}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{C02087CB-200C-404B-9AB4-E0EACCEFCDC3}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{468E4CDB-B802-4624-BCDC-80658ABF3A02}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{78F60602-7581-4AB5-908F-8D23F8976FB1}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{0BA3FB88-9AF5-4D80-B3B3-A94AC136B6C5}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{A109A7C6-D975-46CC-B593-2B079B604E34}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{0A8E17FD-ED19-4C54-A1E7-5A2829BF507F}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{8CC7D9C9-09AF-45CA-86CE-4CECF680F2B7}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{FADD8651-7B42-423F-B37D-3B98B9E81560}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{18F2AB69-92B9-47E4-B9DB-B4AC2E4C7115}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{2F94E1CC-A8C5-4FE7-A1C3-53D7BDA8E73E}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{E3E3DA3E-B97E-47BA-A47E-9D00A92D607A}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{0e71a49b-ca69-5999-a395-626493eb0cbd}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{CF69DF80-7690-41DA-99C9-186E46860E7D}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning\{A9F17D57-43D6-498C-94E4-EB0E9E7E19C2}] -"Enabled"=dword:00000001 -"EnableLevel"=dword:00000005 -"Status"=dword:00000000 - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_del.reg b/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_del.reg deleted file mode 100644 index 98cafd8..0000000 --- a/newton-cn/bin/v1.0/Modules/Provisioning/provautologger_del.reg +++ /dev/null @@ -1,17 +0,0 @@ -Windows Registry Editor Version 5.00 - -[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Provisioning] - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provcmdlets.dll b/newton-cn/bin/v1.0/Modules/Provisioning/provcmdlets.dll deleted file mode 100644 index 4802ab30fe13c3a2df06112197cb521260a07ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 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�=)k6i&Al=b!~#t*PebklB)XY+KwUJ=Jd9 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 diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psd1 b/newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psd1 deleted file mode 100644 index 35691a90cc43f056492734111ebe84a8f6d56af4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2340 zcmcJRZEw<06vxkN6TbuDO*L^vC!5p6ID&32*%kuB_lyEIKp~Wk8M6DLysr;6g@s*?0Az%6W%w1&loxGPr?ykI*vK-5Sw0Pf2 zz^E)Acz12?gt<1O6Luf5zr#MADa%LRhw=zoT2n>tWGX*pB$H=tR}vyIVJ_zGvR;s? z?HJp$#Z1U3%3}@FwW&!Bp8euRJl@9@S@eMFw1j6jp3s z9W3oId(Sfvf61;(sml-B5zj4m96bE$6A>@t(<}TC;MV~XtE7s=MWwQls3A2o9SyAP z7}HhK9&z=_hpf&z(j$D6)}8oiY_YtDdBQ#343_#Ljia4=`3VmjmfMPAbQv zZX#pfG7lciwJlp;gHc=hJbN(lE zZqHeDsI8kM&RLz(H`X!O)>{eAe(ciBoNZuPXWixI`gk_U56yqg@c)$~t1$QD0ktqD zW3;obk5M@<+uEMn%S65es8rL&t*E~sZ_UEM`okIKh?p)R9 z3$)!Br@fl(cV|R3qDqsqbyIAzlHcJsAn&!ebg{Zgy@zz_qMepg>++wZ#MNWf$Cmv0 z?xR=F?h^7d%a4f8SduStX|>V^I{@*>{wj`nmUCTxarP_!TQEB0NQ0go@V&5UkzXGF aH=2QcR!4BuiY@STe;V4WoRyE3iT?mdLuaA@ diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psm1 b/newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psm1 deleted file mode 100644 index 29acac3..0000000 --- a/newton-cn/bin/v1.0/Modules/Provisioning/provisioning.psm1 +++ /dev/null @@ -1,16 +0,0 @@ -# -# Script Module file for provcmdlets module. -# -# Copyright (c) Microsoft Corporation -# - -# -# Cmdlet aliases -# - -Set-Alias Add-ProvisioningPackage Install-ProvisioningPackage -Set-Alias Remove-ProvisioningPackage Uninstall-ProvisioningPackage -Set-Alias Add-TrustedProvisioningCertificate Install-TrustedProvisioningCertificate -Set-Alias Remove-TrustedProvisioningCertificate Uninstall-TrustedProvisioningCertificate - -Export-ModuleMember -Alias * -Function * -Cmdlet * diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/provpackageapi.dll b/newton-cn/bin/v1.0/Modules/Provisioning/provpackageapi.dll deleted file mode 100644 index 4b8edd21002f223076f0f5e2360f222e9f53ff17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787456 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 z 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
xSF ztJ<4t#&$*~tWnmKNKF8lX~yL!$yK>?7-#|}B89-hnVgr={d7_!`xcdh0Yy1BdIcu8 zO9jM;9Desp5T$jsbW_D6-(6Rgit?Ts$i90H1U2SYqAb>3zwH&lyi1E~VS(rwSEg)B zB6W~XB5gv(p6y(RmP3V&ZIe?brOxVWNMOU(#7&R=8aU%T`Lkp)J`K!AHp->wjmAn- zao2c8iH*ot1Y0G_{ZtOt$A)>c%z03;PiOE2A~FbF`Bt?*-LK?U*J79RGTQ!?yZptJ z5B8{vkae@*m zZ*bnE8t5UhI>%5aOO}CvUt+UceJ1ENvU!O zP#U+YegP_Ao34Q6;n?m`?^C)XH+7I{=RUd1TPUD5LUwy+#Ks#<9Fvd~SDfQVL&=N< z{A$X4L@E)>87H4^%C%L1`na=JR6L z7Z+zo&yrzJ^*jrpRMkkXMdYa^*QD<>1ykwB5n@qOVpg;kfvzH!w?vXDq&txqDOiev zdWhoQg&;>*qb#(Fp9?TNm55RurljdFzPP*W45z?*ARP^AVdO6D^B@wcjo8l#EHQ^5 zShY(L-jcP}Ov|6~+sK+DJ2J+%a`fn=s(6?-LC(=4^lhR8BE0xUI?J@5d8NVua_Ugf z9a_rgDCd02xO+0j-74Q?pKakKIoz|9oym|ID|9T>29v^2OH0kCJ|3~ULyxl$O0cbZ z$a2vBi%>a<-GdE^St8kGnTBSe1hqQpY=}3{0!Grfl6bv>xyp8zSWp@3T7+0;yj`{l zxh}EWH*?9A&*{0}a~D^Zf@_Cp^z3I&8$pg$d|f5~-JxJfQd*_cjm`9D#b%l`Cy8d) z2d$YULHqaa2QXVl%1F_XLF?*Lr|%+wgkcX$kC=(c!rA$H3xR6m50t*0hQ)JD2e?-X zI00l26H)?YTE(wV#G8-hdau$H`IX%dB}PG|csMNGchzA@k1LaO$h9t=oIl+43+z>v zV%qFBg`8j|vvx;`8t?l}KVtk%S0qEEN#z8lRm>7BhZn{u-#0_8z05| zA@HaO=lZ-f$zsO4c(^xy*Nj(^ex7NI`_MJ|0oiT6ICW`fuWyWCKM-kBK0p(UlF)Xe zL~{^g<262s!KqSGzbemE z@)_BBCHqV;el1z|SXQuHvJ6XDm6Sse@toc0w25G}U-)T3t3Z4P?z0R-Qe{3q$``#AU!U}gE$O<_z-N6M#X%9`9oJ+#f~CdAaud+1M2J_AZ`0j z0k^#YP=SVH0+l@y0NkG+$k~wi*t9s}e9K@z9ON|(mzR-JD51Y7E?^=Ay*X7NA?aK| zovq7K9NjIc*19t{tY6;Z#%g$+e#7LkfV$KQ+!qWSZtg}N^ zZbBKL$d)XjQSxjb&-(Qa6@#V|4KjRrNm^Cr+PryYVPCV&##Z_q0*EPSpt-LrNDMP8 z78D6k&Z`pz(`U*cXD_82A2Zt2rXU7cf~2mck=OJ&@EmNToVH|i;&Nr$SJn}mFR84- zey1UV(!JEI#4YP6nKfCr$LmKKM~)m_#*~SF7!(6nF8xNXewy*dOWEE8dT*2nNqk!u zW+K!{IAz#t`gE#QBN_m74=lc_UhX9yEz~-?M=~Ii#k8< zFOqdy>odnU`^x&pHzETi3WamSpM|r;(1%0EFm;&dJp^2p&)x`OVJ)Nt%~;sS)I?qMC3q5nx!KTpLKP4OU7gZ#)m^bCfuQK^~sh`)nrFDiA!+k^L`pHkeQi+#>V2d9e*booTwX0@_cRU+$+L zX1wsv?>xBhf-=7}?Pr%Ll8|gVl0l@NXT0-h#ygmKJ}C7Cxt`YLDY&Op?pV<_^HkF$ z`BikFUA7UI4y0{rzDgV*N$90fofvho+&OoMd?B_%uCtKP+qZRcA;c@!c~ll3{taI6 z5qnOfUgW-XuTpNRAAOr1wU7mwhB;~)Hk$U_Qm1HNX}3?NVUC&xDfT%t4@ws^4KCT~ z)NN%Dky~_G#x#`43nCM^O+Urj-|opR^w} zWX~QZ@=Q`{n&FRMNpEl3fhHC=dhdZ|9lW z@_AHL-iM3$aFP0O_t!r#@1mwxWBX##RjYnEj zPWcF3PR}4!o27Hmo+_@{iHE7~mFOM}1ef9Z;SY50B(Hlre&@pFIJ#$7jf=$R`K;=3 zup;(N@6*k)mo25Ogp)(R>=T}m7ll(EVq-KQK3>9!S=D}i(U4Yi^s1`mw>D@`sdGY# zQj(V!CM{nDwy+CiJDN5|X2B8sl5^0xUu6OtTa3IGjbY+_U#TB6p4Rp1>F!8YsHXZt zZ%AX*keWx>p%GSfU1D%-YF*Ng!=!mQ=Ajh0%#u=Fa^tAD4}=xX@JQ z{!DH}4qi~1do|aXlrmcB@tpI)6eePS*k>j7z#IX|lYc)MNKcw;UDWRl1qK%sLz)tR z$FC|+28t7BGL~!gbGrv~>%11$)9^KVu;N)TMOR?3!%14U+iG%g+VTcE@we{Wi4G%T z&lP=PQ&=MZHcytzlWV~9vX@c)JL?S9O&P!;!YSj17b;B*Hm#}kN(X@152gb}q5!Z0 zu=R6G6VI9Uqe8=F4{nxs=9;mGid!h*_uL7R&!(Yax#6veD;@1nwnK;;!=i z?SybQ!Z;4(A%YP{b!EWa~SN4f@SqtqucRZh)6+3D3H~DO&wSf*lWy%5#dRnj) zYMCs&NF$395XJiaa}JRsqK`*?nh4k z&Q;Il3Y9vm_Te9|TY3*XDEs~>} z1m&cuem5)2he~2)Ks^{lpPC9I6=wpTRh;D}`yqsC5Y1GX(D_I~bada!g6NPyU#Bmc zZ?_A|C595V)>4=DORU)8lHICc&R}EtheeX%5_Q3gD%cyONFU;rsd=*SXaDv_Ac0ua zDSo}|cbHnaTl{=ILeQZt#v|ui5uMM#0uxf4XDt6>s5Ju(Q(sdVetPwCpo89BGOuVDj0jcQ<_b3 zM!qp$T*#J!!1I0s0%Pt~hd?OCH3KPq8=@?zQlhd|^9f=DA(KPiVSnLfu{@p{G#_EI zKKa5MDy#}qqxVoOKX|xKKNL$T8fq--tS%J#x!HABz6H#s*v(<;6gmCJ1V|m}I z0;6rAJQHat=1YjR_^wDU*(L#?^u(1``jDeIMv_ezy}Pl*R1J!&gq*Wa(9KKBNa2tJ z!8xMNVPc(6#HE$9Wxc(#Y#otlB;;0m-~4OPV*=_C_X+P+$k3gye$5b+GMXs5j5Zh| zVx>gAlvBj9nwTh&n$flhVABBpwfX@el&+vqhfwmOUP=I^GbuK$2Oa@^jpfmvVT{b= z&G6^mBxRi03Uyi8x}g0PqnRmiXiQu{{nJ0wD{$vYhmE4GcFEh?kwmh@Q5u3_e?hNJ z3;?P8k*=K4c!w?v+5~e&GD`JEiNHv9+nOcHEa+9|OmWzOK-XcTCsH%$jI*LZ1`v82 z#%E`cgd-Jd{kiGeWX76>t~N+d%aP1J5@_8nVJvy$5$M_y!67xBrGeI-tnGtXa!gR5 z%NeQgIlwegKny*Bwsj2gHz5M4T&q=)gr5hx7FeSk0Z#7IO(}QkBVG zG)zx9BRmpma>O4pg5Rm65GuUVxq58&P8T~tOVu4|kGy1hoT~DVb!88cck0SzFH2m( z_6C3uw7(7-%Ov_=R1Wzo^(#1VW}bL{r^`9rX=oA^E^&K zGFQJ7_&byU_J~D@;jhF|I8#3oUko+Xw(NhhVk5IE3Yw}VcuhFDX4a&NF%3joG?w9h zHclA{@b-cFZJLz!)R`2`Gu~F4}=&y-vd_qY5K>!`|c+mCTKF~9VNPSIdrh> zWqCo4mMUnuqADlKvaOhQPZN$*?;CAD=9U(@p^_`W5oteiLG~ni%*@_nzQt>WR@2rzoSRZd2Nv$>fw09 z)9c-HO~o%enZ%}CWBI&s!|V_?3TT(C>J#nIMv9 zr;uQ`#XZ%WRoozAw1sSiGTkF>|A?S{DLXv}kerbHFTIMlr~8^1DhCr)3*Ty^y^SW7 z{=}+o;J1Sh)kmyFjk5DK)hUKDSP|Vh_Y{G}39Xf~4>kS7-A;2$?sB)#$!x<=gLT{r z29`)9kHPGi>@BZ3JMNOr)Xw1~gg3(wjzWojRg)uRW3Rqm_H~TC?%qyM#NB&50AG>t zrUMoiE&4|vt0ulyn~d~V*j)M}tNeVD>AK{|PR(YCE+hSFr>%n`qdR$qW>?yI$6roqNceDQ>@(5_n~pVda~u%wxV* z77L>1`ghmAa_Q(W{jpS{9z_%qAExG{U$AWo`@ArMoJFBWox*X!BZ`;XSDJFFBhf@k zmg#ph#vapUWy$0kL^qQ0rxhUtd4}3Bl}NUJGl3GLO`<``@zPi#7OIMph|wDoJ@KZD zEf_q=xakA>FstIqB4R#q<(_B!SaUI4r|XGaDD!E9Bk{>a;g@=4OY|!tw3E95OM!Uq z&m%-e!cnS30@up^Buu1VnMdk~((^P(Bpl`iP@^bT#kt`-2YS&BrwKH~CH~~h7bkh$ zI6!wJ9P7<!&-zC*&6Z^o)eK2g!evx?Y?@yCpil^ms+;tWzDDSM8I5*GEAp}$+ zN9h(YUi(@kcAm6)YHw;Wq*O;^b(ti5ux}|A91yI&a<;1}5-jn|f&AYe`rp;@WT<2^ z?5%v{tRVSZjdGSH)sm9`-A0E2z;jLtYkC5tTOm)CNSp3Y7w;5gy3}NoGTEfa41R62 zk8SjWaB}r&@e_-wJYQD^d-PUA@wvL#RDQBeJ~%SPTlF}VKl+wu6vlt=92Zo@nCl}q}~t{r^#8}bIsxw~Rceso{c9*#`iWDlG9 zmt0{{hLFy(An^{T>fR=(Qc7hp5T0ls@>0@B3+p7xAN0x7AYFJ^;zc97h@5nbV)a|H zLc>WS+wItDEq5C20iGh|feB)pV^D5Lgmk9~8KMT&=T!mhdseZZka5MY$%Z|>^$jlV zHDqJ}`vtnhg;~6cG9tnO-y#j))artsj8Q4myLtQ>8G_Xon=rsZ3bwzWTGX-?5TME2 zr?-XXq_-SCp6%q?`m20Da!FqpB#-3m3RrVT@b3TWcUi5e&yn|37Za0L)>0t7n7{mU zZdS;;A%C~V|16EOh7$)oBZ)5(xkP+cxY9(%L)BRqS86jBISAg6l8)`>!_AgmFwMW2v}rzI=2lYNuaqp<6xh>JG!w_QACNvpH{@MD-tW4V(Tq?#no#A+=Y z*Q|gY7;M4AQ8HW#wy68J1tCuInoy4N(j4B(s`67bmn6)!5XYJcLU^;P|iDp%kvltq`_$rrkSt78Bt!~U< zR`y)m0oTvfCxJe(2%qIpQO z9Z|>bhy6G~K|Pvq%e&q@%NMA!-Z|O*f->vtYq~2PKlCD9Rfvb*#7+_VVG8}IRrD^? zEqt$iPNL1qO8gvYwOYaNNuP<6mu}RH&?8LV+H|R`47~iPZ9IK}@KsOhXK*6f8L0nr zU5-l1Saty}bA^j_5pIhaH5+s>S&(7WIiIX+nl5lVgPgHbawGAo{BZpAY-i_7Law4G z;)6%htE!>K(^a`aaLS%q5XtFuezr+HKJezM+$GidH&+c_QhfmWFU0fL`b_&%(MHLL zH#xU6NglyfFx!phdel$wi0uLX6P2JOjjktHY^RrZ6~n>+d!aHYu>-|O6b&PGfK0tg z=q)(U*#(^UMB^A$!#Ifw?r)mrh)~L*j_p>F2r@Tq;azobct;l`yqAbGyGwJgZZpMA6$KaI0| zJ`Ldm`m38c?<5Nk(4>orV8FO0Z*-nk5m4}L&T8`bH5M!cEZV^ff86HvH-j6Frpn^V zz!H;+^NfOE!asg}~_L;LG8y6CC$7l1vkF~R}*VMcfU z^^Vs?UJxxf#scgEx-jEp@|-Sn@xj5E)PYVC`-VYdEMhUD#JT}D5#E}D$8yV%J}uBn_j8yv(79)3v9{6E$8 zGWelEy38A6J~<=F40@w%?fUdD?|%J{)O4jzm}_;J`|f25J}>FQ3_$)ymnqt#{C9qc z`e6G&z=w2B$f7-Bc%o-_xd}Hz+yj6ue&+dMh3{9Sse|Y^Wun&%5+U|MbFY)2obbj0 zNrW*%vLJq|D^qcpGL`x1?6(qUxIEAe1-y0e+#n{zU^~kdiEP9^wuj@LoJFSnbC8f1 zp8$6>+7$9yBM{!;oaC103m9jw;z%cNs?oZ9CNnA|mu(oME%;1H=#bimJzUYI9%WnY zF5+-}7IU(jPL%&9%6|vO`Uf|Sik~)}5!hS3X-Qn?Ja!-~Kmio%4+n6O$Hf|vtm55x z7BwsIU36Ijv8F>vC6s!cF7!f}Oyoc}g0rlg0VfwYBRM;A!5C46@aS)%Q?>-ZE+OVO zY)-CKW-UP2E}>U68=Z;$KQJD@4CP4q&nM#<-onde1hi&g*DL!KTr7;IVJA16WL0ZjDJIUQ zbz>ty>z>r`PUkzvi5abFomr%q6&b(0=8oU@|22L$Z@TORFuv=WjyEd;`C?EI$R|z* z$fsgCJ)p;&K~b*MW$t1Dra!0`{3@;1tmx5f8~Ia0*D8kX>Uok()e1d;B`bxC#Bh~c zoack~b`*nmqw9m0dyKyoj_Ui=%#46?IVY53+8j<7; zLqugv_$JYhXJN+?&n<0p<#wOSXGCC!@Ge3bbW4UKQ3=uUJR|j;k{B={Kf;z25foQ8 z_Ba6Nta?iLHrG<_m5dtt$oYUS6JHKPfkY3ZGLFHg?h-zA+eI#)+AkeSyIJg! z?!}8~R8V7`wp(;}f}56gh7ksZLC_j>koIRpuI?905BAD+3gB?Eom|vZcEi$gA>l(i z`I@BZY5RjJcuJ*b=h#hBG76koClMDQcCsIbCpqXFx0X-}sdXw2S5AoSMcm6~->b5~ zx;%zhH_oa+5cQ1=1>Ojxsr~_^=>a0gXef!^Q0Y&xgQDfT3giPw5)QNPR9!%NBdm|J z8FK?-J*vknVc~6*bq{RR?L4m$8iu+Nqf5A^$5mURcmXloybWs3xt3v3?sJYudm+NQ zCb;5TR2w+1RPM8o^rAz|iCyNEo#b5%?>ZT(&`A$-uJ=h(J-i;a_Nf8A1fz*PQcnC< z`kbXyCSSjni85lWjiLA*B$3q^^V`?c6*R_Nt;;}MH-p`Sx*5zIM(b1Ft-4SM43b$H zV{E{r5$=8phuWz2(rGEVRlEVp_t8$?Bx;X@^RZt*h(+K;=c^MWAOvc^e&^y!?{d2{ z7IeVR!3wP)&CxQ``rBe&wW5oxsEBHaKElAm_DwDP)Yy-zWzGs$lSAwo7tyZa!it!(n=z58lX}Ot|MFxxh?W(Fe}YI7aX3_w>KTJ*bUAtnyp|X72C1ygjL1PWKF>gCEK9E4n?b z*{x|?0vL%~H5fyXj8N)8GyqJEkKGAL{bxWIW#b3p`fxt}JRKqXTV$+E$>ZXqRI417 z#_Ew@gNG}w{IeB? z=dhqa&;rQbTbxo=%S@SHTCK-s!TUgi(Kee)bi~1+-M*AdS~790Fm61Tn_vYBVB^NA zQkw-}9xo2F*&+tmG#4#stIIsAT- zy3H#4l3*`;2QGS#_2VDjVOD-^ES?P7RDNaL^bT~gH7T<+kAwBqzJypXq{cx)aZSda z*JG2U76Q44coY0=VaH!WJz%jE<(RBLUn}Em z?1%c!Bm~Z-#l9>n1eb?LyG3mEXugx>4J*MoRZEo zr1A_-JCJi`aq_A8k;-AFQ6)+0jT>V?JAi6k{Ov2-rM1~FNzRi7iK-`qf|o}!7s)}p zj%ZEcFbt9@e(%_eu`7rlH^IFapYSx8v-VRK}#EODQ&Q1XgvmG7Gu<+~)7IVm38=lyW z_`P{>G;gvMY)9yMniX6l!x2vN>=tF2rGJJ!BZwT#ezEJKJioB4u-bR72yVQkBuIV*!{h~1gtBz z@gMloyM$k!f4w2~JmH9D_gdjbYvkMRDhPFm-v}Q`_boQ_9^4x5g9wI}>c!zacd+;A z=vbP4Fr(SQED^snU6fFlw5`-hLx~*YmdGcO+JtL5^Kc&zw46kK z#TUzr%`YO&OKiR`t7*TW6(|l?27Gf^PT``OOFEszofsVgtlfRDK(z0b7clYlX8fFz zh!sYpXU#7rGD6V)Ycm50{5`7$sv7VGC;qj0G9)zzlUZA?!k0MV96VWn(StFg_2J`d9C7EX|w5|V8w&C^VK*U1I0^9Y@8+URtQ_&1S)kR*#4c6D*(nmPG|yNlnDjS%@-zQ9C|Tkm1B668R^l^A0$ zL2_E4!JN8yASd8hSBY~gc6cH=@X^{IbZZ$0-`ToMgd@A1c~M|$xd{9Kao}}L;Tg6A zALtUrVO{JV|BbdkOV_QIPHJFz)mUn;Jya&E_1)y6tgL5b{yA7e6(e1hpIv{E72D3V zAmPNvJojo@<5p~oG#<~L=-&0XcZCwkz>00=&iO~9oQ1HC<2C1T_*-gUu4 zOWnG0UfS2q&$A8+*vZ5&YoF}fe6&Cmf4ip0IbbqFPm;{3;->*4xNUDi7t<*8A??NI zjYH3+d5KKsz3Vhc;x`qQBBv1{73B+bxfWkPBD0B$pZL7R@6Tr!F>~Isz|_-5nAYg_ zjnQEIrmUUG=K`lpQtWOfht)T&}Htj z0d{FrLyy(unjw{|V%Xca~Udz3hy7Ejz1{T_ZXy zJ}*0wyFzJI6(hqtgRJb--Z)~d2L#cOyZ)-B8J|~rG)~>*36ODF61@KH9c^a=)!7ktixJ*-e1yqibL!DDWo8`bIv7CCtUG{w{Y z_}fGZ%!7CI1B8Dx+bk10gkjWL!@%r)V9}C=r>^lvAmFQWhf&Y;`BTG?X%k5k1K^a2 zM~XxeQlJbd;SwQ6?J&r)uIa?q3WY2Oq2*E|iXc>TN5nW7pU=tpL{ZA&Y%Y1q6E`v9 zS=n2VlPe%Y!3J4FQoZ}%)fv5OV84m2F3pUkD}4jLDZ4KPlFkD3)I|38F%Bi;DcWh!4W7P^f&Q@AeDj}0UIA;)=8bYvc!m<*s92NZr zV-lCL@T8&>8#gG+8dCAx-=F+(R?|fHYjX;py^b#_biH?_2ekyYOt11Sv@y<>n{zoV z3he6I*#}u5f~WO5SzX%TfyCJ<6{1?3X`TYq#>`rwq>%j_60JxZLMT|iKIh3&QTH_M zt9GSA-3#If46&_&Jc`ujF&*!}gVOqQ;$;t>sFz zk}r#zU;~*Pl7)w}2lBjJo@bUDs{G87-3q^E2TPbWE)>R(_T`0Ag1R?UhNi>t7M_dRk$SvkFBjc~fsU*4SVY5B4x>QF&$w}|SfnS_sE-gg}CK1GrQ4z&wMvonAG+6n2>F{Tu;b@?u4wTr_1XEIrN0wp(mtN#DV~{ z*o-X|^kM!+j*~KLiC%bHOuNu&K`Chm@ve$!`FITB^yytMp(~2Ws?*y3Esi{tTc5 zb(soWQ{wW}hwDOj-kK(W@qbkqUoEGVTH?>j%&}>e!UdDI%bLnOxJR}x^msBB_X=I6 z=%AR44>U%__zgV3KRmeC0Bzl7#sII?Wf=p!M3-d_uu2zZ3~;tPDjDFl;oj8U2-YZ=X4QHvjc2!3Xbwzc=vZBKozT+;sEDVNX>~NB_x_C z8Bnq7%V#AQ#?7R8gDUo;u00F&2~4JuM7}~1>)2k!gSxm~8@8fM zy6}*Y!<2|L#Tu$J@g$e8idAsnepAGGL+Q{q-65`H`Z@!*rs}fYnJIlvOY3&8Dt;3k z+-CY{+PUNZpzT8TM=oL2ya6>r|F!~-$(pta6`4x&^)+ca;qa`QWkI{ws=1dd)HF2@ zpg1E=puy$CX2q!`VAbEn)0HH%tO+6o0;2LunUK--VATgXh$Cwr3&PHEv^dbLnBs?# zHH}b}zt3MhNXcG;gq>dT6qopdn(GBe=!*oZla;bav9Q!}OQo_y*`$o__rO9a}}0 z0v#MFvU*p*zKZp3tuq>G$%h}7T^g->3%3#bYHl})V-7ZuuPFx|)twMod28&D>==!D z!C@Vp_Y6!;)`la9&b~s%BkWV#Sg@9p*)lsS)A=xITek7HgTGzDiiHnGbBT*OX{Q}p zk3xb|)HJ3ZX~xtNEA)jGz1y1cseIPwoS5gT=4xq9I((>91wteUW=V=g{OcMqck4;$ z0ehpF^QKr(STjWD_W&<1q<5Qe6sC=bBX(m6);uK7C=J+ikDd4#{h7QL@@^u5589o; zqVIb4jqHUFAF=T6K=uu#LA*TV^P3pf8;&@GGg(S6Gk=tdf^nNb_TPYlayxoA)af<_ z4!{z$qmL=B(hJ7?24gYW-k`1w1o+FWZ=BBFye{al{#q*$a^Lb&8lZ7w+^#`&2N&Wcy zkZS%E30&QAHche^|6I>vyy<+Xl9kx_-MFd~SHDrt1es>?`2bB@U?=>LXYnm?$~eM7chG z#v3dJI5aVaU=41ApzjF8r)Kj@`ZgS0%!&({if*WMwW87x=&!_J?ed6?sc8IE9J)%w zvCa|BM`tNQcsjs15U)aY=CWOOR3hqhBl1uIs)XzM&*Ld*?FA0QA}}8Cm*@z+I{}I? z5wipKv~i>&FLFM6Rl+fl|}SxJ19fKu}$P_%-&6yw9E?-B%{d)hO%VW+78`w0(9d zTU{PplXKviYC6T;V9H~u>D+53f1;o5F&g^JY7!P{$@#LHE~fX+$T}H}vE&X=)DCTp z5ZkDts#HQf`AM-I%8Qa(&p(DMBTB#(|G3J~{!O{hHlj*qz=CAr(A{=Ms$+k9^!q#Z zEB$Qmj(LtjpPnZjnLdYy$G#Ex~axMgZ(#x3ia@rdt*s!l=|Et0fv}T9ayIZx? zML%DK{ec*K=qgJqX* z4%wdyRgh2v<7+CgD+m*_QXUY(2LmNx-Va zc%MPmRCuak80;yUOEfydQ$5YN!IkUJWzajOf#~u&h>A(Ro;zOK;|UJ-0o}*MoeSg zQ)zHG_=id$76s9Lxgw}-s3@9mhsrBMzNSk8&$z7AcHE&Y!GBQ)gH4&po*@MzdE_7HSK-nSM5W7sN=DKWGMyZ(DoJ; zgh~>c@<|B0v#rVn5_V~94-yut*=W0oxsqO$VfNU`JkcXMP*6i6HRoKukI-Ju%QOw- zX-2lcf(R=bb_t_bY4?jKpx~SxVnTuxRzm|vY)0-P1YFGo9I`tT0qD1{X@5Nvmw7WG z;e%A{>8f%w2fFG)&uvAHx&43irpRr7Lm;_^hdpL&XfjxNO{o$4y`bE>-d~FLJz4m~ zBR@E!KTkg%U`DT!zI2=~Gb%|WXzt>4{ec$9zW$*m>J7Zb*+R(Ow?vTKRF#TW3Pc)xEE{oCaX4S-}5&;v>**IrZ zD7152G5usUn{@VX5C7oU?@B-3tF!Z)kiOB;#0+#8vi<_}4}0J(;rNt-pk4D(#u31t zwmmWdYy=UgDQ3t%XNVxW@XSZL2P^L2-3@OkfMCOu6XpOLURpkuvKQMOH=m@i7YJPNx8J|~| z*iZh4ndkej>S+{TQTswRl&ummkaV(yl9Bg@$a^Aqk=l=@Y9kChmz02U6?Q232M_wV zteV;|<)6CH6-Gx#lcSU-zWKdZm*l(^;Igu1Z!D(L}teVwaS#;s&$;O34S)<39%)`k9G`Wptz&TYxt*AXreB7%l&Ee4$4# zX>c=aNK#di)Hba-wNWyi@`emv>OGOJH}J>z%5Cu(hmb9d!L)N%|3Whx#2>ztyaNy( zxT!_Zw(+6GWm_fDO}V>I>>!H;0m0^xU|Nwm{0@Yy3NNDkkN6d8g-=h-ZTvkDj`bJJ z85O|eS&5t2#CwG@E0MKRzdzgsW)bt zXn#efp7>XKj5YRZVtfHC3Rmkw$l&6Lz1cMYmtlx3I?ypghB4LMLxYNCco1TF8-I86 z_pmkN0q2QfLZ{fA0K;uzm^ut|Xk3Y+p7=5~2fzN^f0={%x`MH6fH`=JMHnP?aK|j^ zQ73m{qKGJ|NKMXvYI5EOD8^#UBW0+4x+zRQ-4JA{U}3N5N8Z*Q+9tF+Eqnj#RDtGP z51JpJ%Ev4kg~KkNJ3->S!sPTstcq|B`*Mig;OfDVoPMQ?=q01t4sbboIbE2ezY~mC zVWsJXDx0QDJ(+(B&P!xeJD4cW)=ftQT2Gdph};aVClBHxy1(#QV{!%1gly<*%EPaw zoLPz3Kb6~~Sv;_^S8gfi%U}K012jB>NcDB(wKw%tCnQSEE4o&oLuBKr9{yFAi@^X3 z@>ruF^q47JbiPqgv%Z3;&nZPl5gg_FT<%MgRr!hYH1;fIREaTx zj%(zXe4r5lD-kfjEH;Gr$f_x9LsnSG!1?e|p6aq(cOgTRK3JEbC0eX28oDr};#R)t zN;{M5`C^XM^n5jbcpR%<%ncIi)PMQsZtc5E}yYzJv-A zadE7EJHK#0^*ghO!NRQj?MY+!!RfGy1mGH6;j!o$Yf~0H zDPHj^6_Z2@XfsLR6wsCxxa|C-E-it$7#(U8L)DTc4jrhT@E{M9<u>KL3#O(adTwa zeyd4jYTCM)HsO>P>nFQSTeoXu#fe&`Eml>UY&uNE2;SgK5)F@dZjgtNNmNFqb+H@Z zlH1X#CEJtDP4+b<)-}G0Yl`R2;tO%zb9f(?wrsYVW?iB2(c9_|U*U38?=u93lo+ax zX`S3Lx^Ju52wNtxOO9rhlxM~2kL0g3%W5bNTPn6%zHk6%uVAXn11c&d44+R zN@^W8z@9c15$DD;Cw153huAD(P%2KuMB@&L9s*Bc=lS8D{BOAGn2|?kNXrA^fcuV) zd)D0__M_N6LS8Ig-VmVH4XE`)m4W;@)i`KHuH0N+lY=MrzGmfzvkwp3r{h8 z*z*nipB=HDmiLYJZPE&JxDu(fAeOOYy{hh-YX$GwoBS5&vM_xCx1)K0khof34Fa*=NJ2jb=+(Dl~4ysrSl8i`HRw!>YW-|7bd zV?gTqwywYuZQZ0z`uY=RsY6nthDhiljra5IvX`BM-e-j}#^#^EgSoLOO`8*N>>{6n zq?7xB^m$4t)x{cwu3d7s*EM>;I=dE43Q;Qs*n^9W_SZzTq#$0CW!%`!od$a-%ZM#g znt3!Ym%tKx?=%grQDz-vJQ`fwD+WPl8NR$Ml=nbW({j{L@}~J zF`Mv{aeJpLpqUAAvHMRFyf)g8;T5GUTI-?3@n7M8Zg;ZE1J4TYFK6N(dEEb4cop`8 zjeCY64Cg0s=Q+qUf*YO7*hM+Nff@KBD~#v~BiS@}y;(DMU1S2@r7Oee1|=cn*q6-- z_=gS(S7t}Al2dk=#T&i21_jm(q+A;%i|4RV#R1V=?oK_I|JD*CQ;LdIk^kITl|9j) zQ2zRERnH)-`<_+nz@}uEv20~!SJN1L3!Lh7KikQ1%n6lP7hM2Prb~cVV~tV36JYX! z3%esQJq4jS*WN`{6g+a~W;IOPDX@0-#ZXZ2ZT{Fm$GJ=!6bzzTFc}Ip@gzZs8D^qh z{ul9){fcu2wyUbXXFd0?NeUx))A{B^2oB*=r%7GsqJFO;frYN%apL!?73Kz|$Cvr|5ULYM2Fo7OWukds$`BO$SerhMq!jO3b|!)tnD?`GPhO;`R%68e zTMKQ#GD@~?@eQzMf;pZ1^pL%kTxtRPKZ<77SchRG5fLX~5VBLrlV5PQ5`n?q3Aj*V z-ovPR#i&BXv;GGcK(!M&a}SasL3&=SsYT7l`zGR^E&MsoUqo3%3+{Zd$ocL}YQ1Vs zJUu@W5BO!Z+cgan-?CRlD*LU44$+~l&_@Ad(l*-O63JPq+LoP#(@cNOAq>u4JY- zZvLKM7Zv^%02O?dGPwIxh!MzXY<1%gz(2!(&vgOlLR;SsU`7T?AP7dN$5}d5IwMLV z0>Ub;e66OEuB2{-zKvglBhx0dllaN$GLLab0B8=HMHHN5;qB>1!o9SnZb7V^S=L1F zxW~D6;1k~-`~L2+xPtaY`DJ~s=@=(kqI8TfZoG}@7DYjPgkMQg@VY11W{J|0Bu zvi5ZyEzlAp*uzONS@^&m9%jeS&S$`aVPk^!2G?}(x?gw?69#8tYG1Bv%WjoAoc$PE zaFo({`@ERpSkM;v+Kjb)|n$@SN8)fXHvdEcc;8us^tkMdM|4u!y@ioZe*~Z z2|lF)Tz-tMhdEaKRBahDJJAE(_nEtYoFWUo%5BCms4wF7oYUfCE=75|nNbZl;{oLQ zgN2eJfwu5RQ-yOgyBQ*rvfa8nGATSbgWM9&+%C(~U&BY@J*8aO$Gn*&d9C zNdZfMM`IZxVPqSGe7u%{h})G_(k$5xbIUzzP-sbfmGkAF3weSy^ z-XK|6tFuW9TEJA$VKV~OjO`3hSSsPgspc+hRqwHj#i5G)hLl6#MtNHMUhk1-ZVWrs5o5 z)A=>5HGnX+#vWXp2nTNV8^xneEQp>M=<|=ujviM77KH6^L8S7f*?^%o!}ufxMIa^KUG*rXW3yd4ZU=Eu;b#|&CLqzN$3Sh5R83lPp0R=~(i8hYF zInpQ~Z$!b=QsW3rM2;Xk#{d{3LNh;+J_K{HH*$|rm7!YW&Mv_*4taIv#1}ZmxT~D0 zYjiFE^`TV4Pd>o6nOYj=ICSe~fp)wW6*Oid5)#*`K2{6|WR{!enf56%)b;}uZ$}t4 z7mxm9goQp`5mWzO;WY*w^EbImI+u8@yLJK0n==qZ)Rnc zX3d5|ysT7CJ`y z@c^2Zg8?kuqOe3^T_}i(%57yr)h;2P}3VManmZaes~| zl!R}DG?J)BEF0o5YTQKaTdRrX<%`pU7{D^<)b!)M@EKxB?_4r@f?E&oJ1ou7wDKQ?Ywa`eA8s3V2Cj)%P5#qV2m;g zB=aTd5g|ob-Hb9zxkpp%_j6y%eQmeD4(t(by=g+&8d4?_(o;YLhAWYfl7&A{eLFUb zko_KWb)+uM(3AAv){<(YH2qeX}R9>hkXPwnR@8LE^df{ON_zwFtgLgVX*@CVM&4~2Ews6uDM}W8u94QXb7%34uV*AR zhyRn2mWqg-s1vdJ0^}VqELpMoBB-^$$YsQ2q0p7rCk_!DxJ@^i(FIr$vus^#rO=7n zQp1I=fE9vV%t7N4DyEOM$fo9Aj9>>4r|YvgKOChQi5XSABy^HL*?*u$PIh}hYI zn@!{9uE4N>(YCT_f36OZtLVr>Ug&#sY-eoycgfCGFAC!ot}qK0=Ei!Gq{`@&8{+|< zr2g%G)*;rKvp=Hw)As3IM@wOQpTtnp z8nH8pVnA6xeQu5)LF&8!n77`3192jQPTITp;JvA}X6InOln;&M*hC~i(;iH!coxhs zGcIxBFgfsZp2;@F{ZUTkLv^<@=H<0kulw$7q-R?qkckz8gg@YPxe7;=cj&fAOJ3*K zRnD{NHyy*K|LGCLU6LShd}V!$*CO^(kGWIfKU4I|u5zIPs?=~TRH=;kUKmIslnP5k zkIyBXi!?8C_4UF3~iL_Myw{w@uS43J-}%hQ3EDs6%vr<^jV9;bhX1 zFuEk~!O1~~Y1JnoSk4l!?Ma-%Zz=AV8A308g9jBg-D+l^QggQrxuHx(voWeoMN^gE zdw3MI9x7HVjt#Jx7B13Vq0y!4)o$}w<}SQpUTzvo3byWDPpNY9ytcV7PUP%);!hy0 zfIW<{wL%cslI60|xgbs!-n>wEi~-aCa{AV^A6C-TQDGWyQH>EYF)@a9VJ33r&2qN_ zha=gMvN>6Ym$NI#KjJg?8F5u)zZ8zG{fUUA8^f_KF4zJimfK*!?wZ&YsO+8#qb_rF zY~VS`{UPSlrM==t7_2z-of|RyJFst3UO{w!v*Nn^MVLzr3Qt&R=17*3?i&Ure!;`e zXn(M6QXc7)fXq(XaDK!9d(Wp0x0kBJqM9>%&!&T>ed$o&05+HIl2t(+vPT*0X`hX1rBk#q8oi@Brtx$4_%>uc4HLJt{%IbrSGup(C zENGkK6expjJ)YbiSxwqBH8KGyG}t5m`NH-Y1*wK-y#b}$>`f&M$2g^C6rUo<&7nVr z+_W4D@x4>c4oU&5fNt3@7|Z`TZq9L_%W_TTTs7~oAR(~@of1dUb%j^R7jzvmBd7KB z1QGhs)A<@fM@@(~MZFVgAka6-7-Y2lOHJ0L#X)qD#W|5;Kl@K5KgQ%PVBsJ8a_c|E zaLIBzh`1xTa6DN`0v$)VL%10B&UvmlHG~M9R6XNZQqDM(Nt_4au8%oKK%6dRQ0)se zZRtTP4!-Q3)P0tIY%JT{`hwQFZBFDa&&9PVqbuz%&nIpsoe|>|;Q1O1o>Q9cjP&Di zb)cbB;rJPN9Z{Jxt6DY%8s(0ZcO-#SkU-&%kVAPJrqV zruYKHSYVS&l#+#$b=QTC)X5qI*Tv%SPw5A33cI1HqGQ6%n)ofP<)ZwG4mOsVb+alr z%{y31hkKe4jS?ExL-Tf9v7|p5zWFqxuWJw<9`@w?V7wYDxykHjXka8!l1;Ed3kA!v$!ulhS(;pIh2El+ z{VcTEo{atHCrfI&Y4n}M5ar^Fwqv97%xf}RW5JwzkUOb_NoVJ%-K1XjlC(ja@RcqP zF59zcFVM)a5W7TpC&$k&b8KID!cIzyls+&Sp3u)C$Zk4`;|ZK10;_;eo*+W?Q&-M2 zejHDCx{rtQSZ&V!be*I*q2GA=io9K~#XiWk*NB#JYwW!epnk=C4~Hb9p=M_(KUJ4| zhK3giGr+MTaPySBB_=YUDfx1|VET~3RWY7P*qkk^!uEcWFJM<4U`;9xaL7E!7&WPc z`=hK$;GW`m4*^Vhf;Vuyh;vPAKb0U=EDVV;3|Ee2lAIIM784>@hi|Fli>}Rt(w!*K z5m{dGF)ll7w2A()wL*+CjrN<>`q?`@+!M8s73s`X%C~Bx^M|WcbfOupr^t)!UP7m< zl_0u5rO%Jpi|crA#Ryr#*l)ezOj!OO?4OzsOC{VLR~6k=6CYfq42?E8x2fkUG`bPy zgnL!SX?WlidFhxPbBa>&I{Zv;9iId?viTZqVY(q^A?w29&vTYD$QD?$5`JL-dc>iL z9+J^$avsw-p*gkPl9yOWlnUq|DNi1m>pemsw?`<4c>2)*p&al)6FKF)eMgZr`RFYeiytn{M+I`cnn zXC6fEALtO~)!A|oEaKK?LypvS^1V&YKi-6<6OX(Jwn@IeMmL$*UnCj(vSR#TBx=Kc zySju9*D0z9|4}QauzInmYXB?#Y3YR*Pp(v=vMl6?j0DoT|GRIM(>uYi-J)UJ=cdp4U5vsvd#!&Y5Xda;C`9opzL5@o6i}@zE8W&&NmMihINo#+tE>!PM)) z2>bq?pmrSRPnC5#l=-Mf9*OT|MQDZ5E}a@bW0`1?$IsZrpAfVi{D~K{(RQz@tOBw} z?8lbKofVQ*YqW{VQ4H7HBoP7fy+xu=ic5G4P!CZdM)cD*#ph%@&;CQ%2ewU>dKEJ^ zk+j*pB5OvaT#+3>wRjXa#8se?MfSpFXgIx)1lJl<`(rZ~5gCL*vp=ok2a|wq@h`AK z6L=prf9P=fV5pB22d=so!w-|3e2#z%Juz{W>E zwL;&}+zzifM7URrn&>Z0X>1+M{nfiQ8Jz~fzm}0N3aG`-_+^{BNB6@mmFGNBA41Qp zA4(T^ofrqPR3o_xEEW34_Qi0mS5~7A#~7Ju~ARBYH*SBb4?4IpaXz z$z`?)LG%_-#V?D>Obk`dPi%?*kF_^}kE%NV{}YlxSi%G(7*~Qujm0GvwZyp0Kn5n7 zU|dkF+NM_1RI5^%(NLuZCsD@h^k-{rZM7EdB5iGp)|QA1L6(4s;11$~`;8-tR#_CC z-}`g!Ju?%Ce80c{>(A>&=H7GfJ?A;kdCqg5?K~%l#Zi+v)b*xlBUw^RJMPf^%w#@A z)AR(wZ%>IHYuRmG&52Wp#Z41SQaD8e){KmPRar}X!UeGaCuL8F#N7d=JoPRlsvXM5 zQL}d8R$GP{GETZWQ7)`XytJE<`;fzIeLK2l9+; z$ZfVvCqBqKB)GnB3*|Sz#XGhG{krb+Lb`C5In@Ji5h}<`JVtLBb=#VdytN*?Q3MUL z3CSYTCqO>gdJpcHZg7FO96N@N2o^7l5%K*woa+*lFIcT++YUqx zHJ33%m*UyT3$iXw3U;yvNIASeQkua)riNKg19{4sg_4hr&1IgYGw`oDqeS#8o~6D`IewYhKUMaGAX zG=^_jr;P;cd|L>Yhd!pgj`y8rE6VuBJFHcvw{+QvY=v##t4F)7Pj|OWsX0PCE_qg= z=cj$jPAjJSiPqe8-{l#0mB}DI)0UZ5**{?U#Q5&s2#B!XUS{9RF_nGGmigb_WWTkX zmt(aBm9wQ_YhCi{A*qsv;+DSM|8n{g%%-LiY=b)a`FE{&dHp~`V49AL}XdQjA*UAtO{ z<@{zD?$&@>H$rwPHa-_L7jjq2&sc%5pxEXaCad8m%$?W}Q&X?bq4%g9%Q65|Td+jo z!_`Lol5&W-u{(ar^CIeX@k>4sL6`Gjz2=FiSp>f*kvB4r&JlvMPBbi<-O>|wd4w2u z;Uvo&rlEA%09$8js6Hjnbphxnd@)HX z0hW?dmJ*heYtcsE>d(h3r%6!3VmnOaxVIy}rRJFEPnr7$6%#UDW2~y#7dS}x%*(47 z=!pjT;uaN%kRU`HXk`XMq=RS~SfcPUTPS?S4x}XXL%(xKN5joKV{8djlsSWJh%H1@ zvU&$fRBrz8eso~#ylbvES}?np2>mdjq0SnQmXssR`abg&!Vpf8d<>B)VK z>zFQux-f|6xxX3VWq`u`3z3yv#B-A;Avra_!C8(R1D0QMzf1ZIlUygl?q1@=SNXUa zfDAPz4;jGXiVR@VL+`ZR!`T;lETe~>$D@i?A1ssnB{X!o-TAAjUtk}y-i3y~+IQ;D z@-@+cz{rW!f_@`Hl3{Rxg~s9BQ%)r}+De$pIVO%D*kUh^G0<@zV{2zSUUV66T9B5L zQ%9{Bm>*ckazaW@@`f4V6?xXZk9UZ|P+y0bZ&w&we#F?bsx9LO=)^o8!{(DGeS4pQ zd2?2CS2~*%Ye>6)18lJGjsDKV@J{$92p8VHBNX2u@q{^u)NR=V-d5X( z{o>6}=<{^B@b;ka_J;sa#J@y-^ML=u5B$m_q$Q8!MJp~Lr^F%6z^!-^6Es+_pxEzQ zPA@6Hf`WbRhdGgy?^<9qS({Cq5JYqtQ&rO6wZsb<2{5$Vyv^qC^xRko>1pQ^1Uj}{ zNl{^n`OFjJTV8Vi7y<@qMijI0i%gq#pQ4$2Gi|Z&Bs`y2e}73XB6qX$w%frry$Th|jYITJ0dm7HDE= zjh>K=rS}qF8@Go^{)&B=NPO*_^6BSrl!bb-z68nB zD;@i?+x(MejMlt!UYtDy8bOhRTHa&qOiXAeW+F!aEG_c2tvW8dhOQmy5d+2q0fEh zY#AqGKQsxAz}_4?926>v<{KCJ`-_%=adJ)^y2mGhqkvZT?F?{0tKDa*k2W0{52mHe9 z(>;N|!3XA5xUjJ$g1_DA~U^E$4HVBtSN7AM3i{P_)?w#7Pk~54$LtSrBN$**b zvz%$$dDE3ue_XRaeqOI#zo94%q3^l9GF|C{UI#kvr)CXYpz~g?Xxm+Yv4)8jtuUJp z*SQyeOV$r92pzm(Tx{E^GIhB`qxa6VBkfr!e{DPOqiS1ocBK22lV8lfu)Cb>XH87| zJ$P`iF|7O;rOMc3-824eh&vJ?b^(YB$8R*N%njK(`xnl?mwln1Mn_=mK-7e`U=;32 zG)hWUc#mgJ*lfSGt1blcur1@o?e@iGwlL?#TWy(wQnmE_K2wlAL+G+hnZG{$BvX)$ z^q*|Y>>@VJ7UV2qV{Mryb2jA!yFzCE0+xH4X9M<|@@Y0+;9O7aCsiTdILxiv$EU|$ z81Z%m!HdY@GMmVGj-JB6zc*8fY@X$S6X+PC8z`nDpNp-N_b&}}z6tF_I7`?0&jMYs zfiO~Yw=M&nzc7!6L%!2-+_)!pdGt2x8jt;q8Y%Wu$B4KOm|>aCNgr)^jKWRkyj|t1 z6DrUCu1{)>&N8FSQdVKh?4TTN3vveKi|_a!;>4R~=Em&lsd@NW+(RxUoid5r9MVLLYNE*!;UKV=hE`&!l!w>BNPArfE#Ref^5)nHiZ$p2hK-@rbhB2Q&sE zH9ri>xflqu|0`G-ShQ*XK>Tl_7bV!Z*AUL`&axjj87hqHu~H$B1fk}LpT@R%2ZGW2 z8oC2@ocTQ;d~v(X!(n=8wApWFpU23av9wr6l0GNnyQ5`cubjsiiwmz!4QYw*xPYTw zkFS`JmklXwi>P%^19AP-28fw(M^(o19(k zRrNfael(i;h?)+j*2+dg`1mB_2wb0W1V(BmO$UjmO*j76(8FVc70f{-ch8utP@$?t z$K)TdL~4OqY=%E8;a?$DC33f`ZsNzh$d(`nubOz*V=k}=+&Js>oa0HpXEBp|WJZH6 z+{2L>UElUA9KRJe0Y+GLUqMcb-_`*+cU5-je$F!C$@8`{)3Mq&5qw3F`{F@G$N;i_ zD{sPTx9v??^dgAxO%ZcK-D>x^2D4)AEf%3f4DX!pH>r(+(S&;3k#Piq4r$W^3~qQ| z=#e(mk!6#m)%C z=MRHhSCl3v=6hRty2q`L9>V{9_+QNb!5D(~GdT=A3P=qPk-!^%MARNU+stt2Xjg}F zq-M(WhCujSpN_me%;-bxslA}GO14P%g|#9a*i|FCG4s`&SJPzKZZ1L8+QK~$#C_BK z(J@4rI-~D!zgLkNZbI?ax`|ERaEl;-El{^6Gm_Xxs-%$mBe(dxOubnm`}Ug*E9ji6HYuH#5CWPX^_@T>=RC5N8Xi~i|ufWzc;j@;kZ2@k}y8yi;zA}2$}Q5$kj zNef+WR~>P7g>{uW>u3Ay_6!*&yG};(aPinEJ1j<(Okf{$wM(4u)`|OXrWaX6k}s#5|`b0q>jPe0_8`zBEdxLPb|CLZQ2L+qW$8*e4cON z8&oFtrDRv5qDc*A)||*ss<@`LG)k~q9;wh`|4kJc&dP@i`H;`nWf{NP(V)jrJM}GL6DNb|@DdsWZFjXo}bOdzjL;g{$ zYpl~~zMw==BL55B*NcO(;l0)I<_ZwH-GmSInlLa%^w*QcodX@5#EC}?cS?=9K&Gtb zA~g0}=7jb7vBx(gi~eiY!8PvrA9GlrIL_HvTCzOn6}y(?@|+%9xCfpy{%n8LdOy|V z!+9x)T&_bX|36%B@RBZj+rGwF=2+;K+hX5dF=%``85y3sPxT1+3KLTT_;numtio)1 zfIGRjZSngtDW?~sEx@_G$hU=G*NfB;OcSXI51*^CCoc9Zzeh|iU#B?Kf|;W(d}3eI zz&3f5h$QJ9V`3;V6Mzp7^8NKPQa48&FCfD z`9MUM$#ghrJw+?^<> zj+k8nFkk}VmZb1P2g?cW$COfma)VghQQ7W&6)RFH(fVGAWXc9`Wq3R!71SPPcC;g@ zoGR-F_{C27qI)A-AZ3mU8qsDFUvyI+0m&Kws8&(OEZ!V|Nlsz&p%(B;=+b;Zh*3vn zmw~_pzD-C~MdImn^dQNZoHuLHN!YjVLI1HWa#m!$1aCK4;_H?zRZ1w<)5}nLvU}We zcd?kYO>xlpHKmQ_1g~o(oR?W7-18s$3Ue8of3TS;{2(X|HSws43ddY8eh0rA5~(dI zIft<2a+CS9wy0P)LrEA`TU5j)7K5!m@5k20eoqT3UAk5%CvC_rex1+ZT_GNIjl1k} zt)*U5><8k2Y=4%0ak}4820jL(GEy^(EIQae(g8O~k1Tt5lr%8T7qM@%Ku>AVD8cVy z#i&-Xf{62_iAv)TC5?e0CgfqzQEdcUf68F8*HD|lX!ml&MM=n-Kr9?hnS~?At>?)N zUx!;}vB7QnK_9msYMXr23JQ}QJ%ic@&(1;Z-*w}m_OD!m+RdpVv-lX)zBbiI4yTO% zR6@2vt?HCYl?><0a`nR>d8qY@b5J|aehvGIo#0FOCWQ4=a-sRCEw`w>%D#=`SmtA4 zSI&MPyY)JH<`y#-B*&2gYJ|ctqQ`;imAnqty$ON_;!QI2Xb<_)lNbRH<6n@mBo*xQ zQP9}T{8^)<=!7q4KK3ii8M6cyJ&oBsp&`Dk`Rm6lM@P=#OE?D!L?@sG4H27h@|=9< zWjFW$vwkcyTWEq_T=&q!)y#Gi5i|&#EL3w)Hv@h6&*^d#o{#5?XxlL zUC$E0;fzGJH|sohe)eatmWA-!kecBT$H|OE;?Ps1|Cm9={*Mvv05cM)B0DqQXvpEb z)rN`Svk?>dsL?+0C8VF(f*c9y+qO(zi3?;Q)t>Fk!0b$}GiIzDUcO7d;`=MBwAhle z7}+J_6pg6$HL%WZ!>=C;QqE2}vfxC_8_a{hH*sYQ@w4Y+jGsp^#exQs+>>&*9W^lO zq6hLjg9_mE?B!=;S}KPegtN`g-o{rlN35!#s9@N}nhIzV#; zdcsD*hplTRL2Y%nFJ#oVBg!NqXnKHN{jNHnEOF9BB+H;XM#EI}On=QG2t4Q2Pit!4 zHo-7>O+agtacv;Vcn!v5QY`|V8_*LN>JLu!hk6%H0>MpZc&@RJzs_ZaZX}o0@~?`} zjbvDK@BJ^Svgk*FMk-lSpnfQ^un`=;C&CuW6k7qj*e##Qg}*-(Eg$7Ud>9Z*(`@W! z*ScEz=}4UbW6)LfJOB{V%0o@?3+K9PZ$WHMo?fbvlDU3v@~lzrhi_@lT{zc|xj;*q zg3Py_Z^gm+*sVH8hVR4Z&38vXHaCJ|829;(ny8K^#l25nW7eMB& z$)|1l!|T2jA`eyf&ie#llSP+OB79a+CX|t!tg#zku0lYtL_SP$p1TkEm+4r$*}9KO z1l7#V7t3)4+`ldJ@^_kpe27lhq2jwj z#ng{In!<-7n))s%0W(d!03r-hEGC2%cPL5-YD(fWQ5$ZY4ws8Mhs6KyfvnQ#v4+c? zVHYGLw8jdZm;6)OC)fwhI_Gt~^xKwvQJUH(bLqU~EIlMmpn81!Ahub($ZnV!;_6ZN zdd`oNR`O%D>om59%u4IF{Zj+6(w(vJOMV;MBiN7JKTxRCoDMgzEVsz{U)*%$UeyWO8_z!Dm;-+iQsc0pxZXmJ}c?Hte| zuj5nh^0n|q0s(?B_GOfMNf*pXHlnZmJK9CfzvrzqTs&uMo-=zso-s1mFA$j{iQft) z?;ve`SD^E9E&0X52hPv=Bo%CvKvJY-@QV8Q?9x2WIk9c#oSJi{X2h7SlO^~Y-fB`~ zN$_ttcx7q`Mdhi&M(6ZmWvGiJQMEg_HYU#{0}OE#Pc;O>>)^4avI24%)hNb^6qh}j zXs)CdF&RmJyVlsRw8&*8iL9|btFtM_x-oGYd+EIxg=S-6##+Dut7lb^$T@LsH+CzT zs)G8{gtk_ShBm)3d0It->{~C&c68=Qsc1~wYUbNsPzKwQehiELHlyPfeF!hbuPKR& zVgFA!LlP?=aVaA_%hQ^Pd&oZ9t|^8Kg*YUWC<2omyTn%4C4<*dalR_Pe=}nc^Eu;M z_pMg1 z@eC25$WhxMp5ZC6qeqPzmO2x@bSxwsBgUVZER?5hoYV(^ExC6e0L zKV9Wzz~VFNK3X3C6e79xL zxmKmW*}|{0DpCL5S=6Hz+~rLwtGVPP43>?053zq0>=E*8y$*TCFy*4gC(j+=j$#@c z^_`{dNU$1jD=ZG&c(Cxxz5&~|wYIT;yn^zxY&qKL&EcV;xs&(3IXr});=saiG21>S zmk0iH;Sk#Tu*!*-$btn z{Abz_q(9ED8?IR1QUR`vctw)j z#$vr3D(I<8&MK-a*j`sVyD)GA3Ee>uxlCI@Qfgl>JMLa4^>b>ND8ae9!hNsVkVfny zsnIX%2GR>kb%O`)9*UI{wkA8C)&e*`EdI1U$pTEs?-HY29@Lol{;iG9;cQ+^oPP&L zLGv>YqFo23(5%k^Q_r1}nU*V)XBCIK#O5jgSGL?t*Py2BaiOl)8CE|Hqq9Q^=E#v+ za>b_*`YQ6w_5L2=LJIgM)#6l(uLrer&D2US-yaD2(t%D{h(YSqi%ECa@{HS}gV{FF zY+bh5m24CppaV)czc*7##vtVvixEbneFeQFtxt#94tjAt?pt{WSGqURgjbY2r=`At zRd`^1a@ar;wOvj2NiTi%c70pRxAnXeafZ8-`AG0wg#VXKX+WO=tlR+hx0ADY5@2>2 zbTZ|TR0cL3!qlr|#RBA_ENrPF)6C?HBhR=voR4ix4x4OVA@d}1#O{C&Q$@d^A`~G^ z`K9jfR0C2vXV7EyM`@cJ##;2D{1^3XFFtj8S{YuSb{}Bz_W~)S=fGZqu_o#)KPfvTW;kFi6DZ$q+X5LgfYmeivh%vw zWXU)la;$-Wu1>8rnRP&wYK*vnpG`kfqR&PXZ;zECr1AFy5oiWzL z4s`yEzjnau>I+B!O`@6FC09?dtl}E(USA>R9kKY5(WHv)B6{K@fXk8~d?4A_?w7McXA+a=d@zs3 z8=Ys^P{*RiP%le9jkC5K@eBVhO? z@_TuG?eak9|ABfG8#~(u`i5%upBUSUSoSDS^6G1s1#Vk%)sbQ3mSovcKQH3TCmHc0 zEN^g7aY=6(aei5;HAvYwS_$#ld$Gc5!FABEoUH=jOW0z4{D}cl*;)laqcf!#1+SF& z3e%VoTkBEp#&t7ITkCaRsW^Zb_qgu*f)%EO7@WNN0&)#_Ey`5Fb}`)MDBAk|pCdGbLLTDnat|W+1ga!o-U?CZ{byT@Tbu z{2UaULz_#?cLTh+9Fav55W?fOh!7)ni3RNjLq-c@uxtyxD*%Cr6aMzD{*z`yP^j|Ng?5JO2qCA%P|FOWy_MsF*BNQcuGNRuA^-@>dGb>~U< z{Bg#X(s>VM&T44u0;cQK=9Vz_yi*#TfsF+#WSeR;OqfJ$aH(fz9!eNwV*wL{2L;7+ z{(|_DLGd@X>#8MG@Vwad^b}`wdFYfVupG+34py+P4~{+jo}Np?5y5^xZ;OUIf2IqO zeQyU>p{)Ke zOKm2tT_5OBz-NQ=VI=WTWxFnuhjb?i1zp1c3zKm^e3v(x6HeI#){dT8fb{5S=3SQoWtZemqnKYkU)$kUM2kAtozxC z=Xf}Muos+ee#OJ7?1KiG4T<>+xMsnR9$D`s#db}(%*muLnPWV#syv0KrL&vI{OB!G zlIxv|ozSrycu~9V>Tf5`I5x#zJ>K;zCAP+|RtxMNs$J(*tGE1WOPo-(S8YM!41~g* zS*&btEG)3L-jG)Qu0!dczovMSd=Ls+=F;2r#&jC{nT)!%ryps?`m$z_P=hPR56Q|81 zeU?)3iC0co!~mxwwNC_Yx|BDt*^NLnC?PRB`35G(Br5IMPSs59SpV}si+)^o$L z+((jU6thB$`&Ng>Z3&Ir3I$c-6&3G2B3%1MAg*2br#ctB0sCZG)D~gVJ+NAI{)Pv& zuW^bXzj(NgBbEp~QgOMf8a(OuFkS|g)rK$dJMO=#T@Ff7rZS~fk#90}8#Mn{R7xZF zARHUp=}@gmMljZ<7bp987o$ImQ-$Q>|6^)IF4oqO)HR{5ef9f2dVUq^+6lTj8%94U z65nJDan)$l4dXs;tlf4s&+GL3*akS-eCnxB3}_sOBh`~U8xj*R?`i_h<5}u(qG|Ou z(S)DuN*fi>#=3W*jkh*H8=_Cvm^JRt>kVP_@myzQ1!Kiq!hn)aq5k41ihbx})=dmi ztJu38xrp>lq<6ZA;74}mEV-Pt(+{)!kwFMkWigq`BJmx?Gb_fE@)7fO!OGeZ(S7S` z21h@HQm7`NG}UyuzBcc=*HdJ@Sz@U%XmY(uo`ZkiM9+{q7~UnsdSKpNvMpGdSAhaF zLjicPOSetjKQD+J`#oLI{TP}z7K+-U#Bsi(yo#F+-QXy%t}U9wWpuok`-gy9XLX9W zkX4Pep=~~&Mx4Y1Lw{w#jl$QNaE|U+L2`P&i3rT5fHr=8MM@|Q%fo)E0sNeYAL#oz z!`~tpOu2ZRGt22s{D}&8pWAR1ux7B;wedX!X_D{cyRL|m(~~k=JP%{HpdmTjm%@R( zgIhy^ia>`}P^DlosaPN`lhQll{JLEbYe#^HjTDQC@Jmi;6z7i;F4;HY1yAbh_@pai zt+G))_N%Y#sjJwx(AXP$LS2>A;Vy2M&nG(3OLfG%F?!=grmoCJI6Db%kNB!6iIBqN z!keQ&HFEPhi3%=&K9(|8SIxJ^Z^>SMX_psNEN<^_hBo;~BF>z0eUb=&WL%o;#YbVT z2t8cEi-FQ$g%jjJ!ZY3=y9_&)x4BoL*qBhIKkDRd+(rAm?K#pkgK;8FD&2b}REn)k|B#1w%NJ$$%0hD!88}R3A%a_UeA~x$&I~pquZosNYR(f$ z65bs`0&RnJoLS{=8< ztC`*wE2^1(UGy}$D3R#@TFeM4uF}}c^8AJ z0$2=MGd#YkGGD@M1+P|YT_4`BJACj8m+hH-VS3t!Db+7bpW^TmOerQq=y3qc3oLqP z@JvEYrj)B*=hn9=bANb(#%0!Fem`IK>rCg=iP#0@RJiy0HU365c6=B;NRWrNg*=Wk z3Z794Iz6nOTj5^zNIDHN@}tM`HyAzIYdG^LZFt@rDy@k? zT|Dy?Y6Tk@8W}4EW*VBXgLAtNwDKNW60ksT#%_i214O(@mw==+dKHy{@wOSb%BWEF zy1xQJrq1(n0v`{st68pzy4V)>Z=zQB7u|#xP)2hqo<_!Xwcpkf;%vVWSA7={Dx&8J zbvei~(y{x1#fC@hXZYAS`MC_SfAOYA?A{)sU5P!PzKXT%;aJO@y~6#>b$d)>HD@d< z68aO|$cB+l29yTp)K(KxEp~souguzk&IkC0e1zEErxtOF zSbWJ~OtS+Ul&P@bX(-N3?d`odmltoIwC~)>g-(wSjg1*^lhf#0(l3Smf@H7b;yg^>Dvmyl0HKl?5Jm5UuYPzcru(Cna)3RJy`Fw&0zUtDb<2^8*t;?-njt7(xOcqs3E?iFD6L) zYW8&W@U9 zes%0+a@xzfAj`Y9*l-{Z$%Bn&*lqntnUQ38lErh4JLI2Ox{|Sc7%S>5Izm{Hc5+qC zt@8V&v=haenxh}%U4#mTl-SK~@3oJQ^j}l@kbgnSvbqKNzRh+VlUr`a$LX1JvpGD_ zL89h7Xj9Qq$;c=P))Du{4+`_bbC1G4(wMk{#$O67#0wlsOod~v;bq;#mz2AEKkf7Q zSP#~fBVbDGZl3zO)^6fsS?w<3y3tuCejIULFzcK<vY#L7_a9g-@m^@ldfP=_*uM|i zBaL)sAMbLA1HEZ~jVZTrmY2ohMD-BK>wNkxKu_`j{j}Tmn91k70Hyj_9L50TC6Rtp zDwH1K!<3rzh;p3JR2fYfHjKJ4nVQ{C*LclL@tS$;#od}=*>D$;YfZDi{#B81c5lw( z|1hx)BG|0fn6pF2o2z}Ig~=c1k@rD+Wyo7wu#7VCz8p>wXk5P}=-t7#ov<>pZjjmt zdo6FMF`~XNR|P9MiL{QP=bNjV4q*#~;_RBt{+GPGVVGs}N2;U&2Q4mq1TFk>I0m_q z2Gme<>h##)hT0EFcgU?h2Y{!yal3VLLji|qDREk`!TBi>y?E^co!{dTC-$&bom1|F z+G-}Y1v;@gAyr>jGx54WXGk@{ddjaFLJfuNk)S|EJ$9#HujvNLyul~wPwe}epDR{F z;M-5qcAY@y9HtkTQ1@9yHb?i@Ookzvnf&Qet$F~V16^0)T``#h(zD9F7`zd$VukMN z(x@Kzl$pozsSSl{`B~N4`F8BsMkicBAT0qcRcbnpQG}Yz35gXj|46drsaI6V>#Ae} zfbmon{G1Bvuto=|CD1XKJHTiV3u?A3$ldb3JG-Iwsyw#!@mm4P^4KQFB8tyvkca_Du;cJ4@nr}5 zbdCR~Lh-YKjwJ81L7cxnuIfG&R(&HY{rVJLEz~uHdfj~bCC!1F24-rCPpwdAd+(=; zqOa21ua9$T>P>8V=GDpNJc&5BE>QJSqW)-#*SJHU^e}`F|8t7M$?xSuv%Q^q4Br^* zgUQ#d9DP$NjNyeD_61_9cqjL`)l5o|G2Yl7XTVoZ2zMfl_MQPJGXv64`_rmum0}GJ zrp9+|jf7WPR`sAQqY00~HKO;>7iV%qXlPGjas#6pEtWs3lpE~6F|6a$B%!nBZ;tN8 zhsYxuv+tZN3fz(!ZDWXk$6h~Q6RmSTRPkOjfxtaqVtDaZJsft6Vd|7f~j*s;8%f$npr`s2eMZh ztLjK#^8y3KBm(hbW)oNY1>#?s8Yf!aFVMM}g1VZvw%8Ez#a1=Ca)T#(->pHAqKWH+6x<9#g?keTE8?d& z6pJQQ>uFy(D#`p2Pd{ln3DF}P_+UQ-u>v%# zG)Y-Fa#Sc0K0HEY=iAfnziTyd*QG{TLjCjrzj<*V+)ZQ2gH7C@*@4n$!%v}$)O{i9kuoqapUpJw$E1_ubC?1JT!U18*#L2oN9w*K+ z1IT3-5GVxs@>)>SYKwN`5(>dSHT$&x%q5=Ou)!bfgI8o!qvrMA@Vvas@La&~XuojQh=Bamj>cDPKcqQ6MySk4VXmZdfICUJY+Rb@TdCrswl(>@f zX(mXG4n2H?p;JQh7X1rr7OC-XP8_q!mgfw=OUOoTkgR9q12^kC1cs_wV~f zNKN+Xo)Gf6kC2heGYDDyl82Bl`a#G`Dkoc01sye&Q)J8?L5k3sprxnX-*Wbxv38lv?$`avV?pac znRYqz(;o}!*A8WMQ>^~Vy~|20zN7P4;6d)^e@Lh2bDBd~a|pB>{U>5ZA)Nfd0BJ+P zB_9oG2_3xC_$=wCp;{O#Iirwy7M;l8wQyDEMHZf62@&O|<0Al-L|@lZLp_0x*SX)N z6^Sl&s;LV5`l4X>VDmzSS6N|BWu5o(F=Wt;j%pT@lXM72pu?d!zWtk?>4=#2#-*od?ArR*Q^k)-U; zp76xq%e_j@*}W1^p?H`Gce79K>vN8wr~3bLY=${8rZ`D<^aSTK8mMda9GtVI!FiKW z+srYp;5^aF0eg(w_>J!V96U>Y0f-8HOQ@+S_m0!i{6p0?x#5D5q_+vqEt!pt!`u0W z_8i2TQXIV=%S!3YSs`c2{s;HWFO6Lp;_%7R*udb{o{HE-ju$&A-OJ(3KK!AcIcu+v zeH$N@pY)9vq$;cgOQEhOL65s?iHED_JzP!XxzWL>#z(k^tK`yLTvdB}g1r4edx}M@ zP~1W89`sd}3C8j^~v4-~E2 z;0&*KzLXslXg1@UINS>X6XeOV2cD-Rh_co0(Zl^5O^P5zXuOXn_{9lVaG&ZXa>Dsi zk$ctRmJzBo_69{G0Z7<3{d79D2EBkLxHk)I%}tav-f~^4!lB%dFToTXJ4oBzaD`G+>hKbCmdX)~e%P&?8GQev@?BW23*WH(IKGpMBb= zH$^@WCfpVPPB#ExWyy1+0HBCii3n8|899k-KDAW}LcLUweJNu~TAO*vxmu%>7=Q#W zk8wL=09}NfX##Ja{giZ>+N_(zjFGcz4L|YjyViEuv-YFP?TCI7*%1Aj3p1jhC--S% zhq&n3N+h~O+>}YrUi$ad!=eV~Td4v_8Cw+!O>1ath!jl3^Pjs4HWn0LfN4eQoVQx| zt>b?)evEk}nB!-GELhW7E?Gv|Rlx9 zQ)W4x>7()M+rs{>U5{iR?{3Ms`PNBq*mpuFNubxv^q(40+j86o4fhvuvl+~R^qYWbSM zi`Bw%l?+yGzVJn1g;{6WjI0x+XJq|mAMNG$*I6p${8Yn8J_uXde}|vUKHj~JkU9qatRBqYV2vZRwz99S3ou-?NyGNBcVt@zyu^rv?xmNv1hIwcPPA|-mzy=D!!)li)$ zO^cg(8`*D6`NG(6mibWE3To>;h0*aQ8zDpl$umLqGDecOjLE!Cbv7Gshf%#u-S7Z- zBD$;?Bj@JX@v{9NzUTgDANSM$)j9n~+cf0<|KEb6UWHwIRDGMpXM}S? z8XPuPr4=4~G@)nXxAuO_dsd9j`gzKg&ZJ2vG;L8YT3K!Be)QU~gITjXI#UY$6-JdG zH?g!16t+gtN?LzPM!$*0b*5|}=_M49SH8>zyY} zm=Z@Wl{RwVW8$(3f)?wNmyr}(wj=eWDB_%e0;vpgu<3FymSBZ%^KK@Vprf*z+386T z9j#i%Ad$yVnzWuhU`I@r(auxN(_7335F6ufA8QFbLQk<9B0U=R+W#)_9{U(x;Avlc zo0B;|ka(M>WNGyj)KC=9$%kHyd(*R~Ly1+!0nk`wfi21_v z#X~YRMd1oLo6M|48a7bBDyZLlNYLHl)x-HZ_S;?)^%I9Zb{>XYEpR1{cwIX0J*`>y zn-Y`KizKcIo)XQ>dvdT|sou z)FoK4wZ$T2U&-kKCO#{r>Blc+GaU|0Yf{ zP5hN6Qg`OO!5W8|T7&=9N)7%eLgStP!dOylhuLJ8*eCv|*$|N@Ba$SKn=C{U?h$Y# zt1Qiwv9HZu=eUjEvLK445CsU)#Qy&u;ab`fGEIP5j$6HW#*VzFAZmo_be0VmM+^|>^GYzdLM%`Gux1G~0!our5O*BF8^EB_2T*jC5t8kD%Ab$Gy zYCH`TUt*c7@jZ=pOt11v1Ib_Waj5Gm{-&-lSpg!+)AHR#v}zh8`?*y4sWcYqx>o%> zpC(i1u$lenQ0=yvhlZSCY(Ae_7+R3ep0bZaH?O0$k1XFyuQ2VsfMaBg^SXa3z+s^- zSutizdYL!1{`kKIFf!E8j7ux`{YZ4QVptB{B>`ZmUf(aBE=Gnm$5z2~%cS(%|!OGUYb@e^ZNqqb!OGqq_uB=MCB z(*1L`bUVhI*a2pnJNw(KJnX%;4D7A?2Sgx7qm+B@M>pfLVh@sDSN8iq*q%Gyd0xu? zkzwCz;|BWz%)#IGo#hQjd+l6JJE5*)%=pt<3MVtCxDV=?QmVDWnLH{nWmJ9QWc*A> zO-EsDr+E&1ch9*2VA5sp*(P!n!hhK^MW9UZh8Zks8I3c{-^o}l?R<{UDy4@TqK8ME z`eJwI98+`B){>L^e5EJ6X{2}gc2C%q;zQ{NJ>f0n`qbs8(K@8d(z>yY z3p~#d8=Dg0l?sqKwVV+^GQ-*iG|;0OYEBPEa3}`CQ-TBuVjOCG z$Yw^Kwm#&na(5s%8|<>#N-peP9lK~$BI%Rz^fBo|X3>3uU2aC!BWY(%c!8H}UYH+& z@ltgJ=1%8h;VoHq3=9flk{9utO=6BG733qEblxLq9qrY1B2}V6ooUx(Yi3I5IHp_e zeZRc_s_fH#d4Jm&5r4d`9D9`_`NM>1nD8|TJKNQM{E{xu2K$16W{U5Y>PbwG^gclm z>3yzb?{6eNt12)0llaQ?mcWuwg&YTD$sZ1RR{`Xm`93-TTKlCp+IxWBEq{Z=utnJy zGJ<4keH98p+6+#WgqVbz^s!(UFWOu&!JHouR@2KG9hDJ ztyW;1s~{;2PFtx|&|85hab>lahy^xN1Hi%?_+m$`7?Yj>Hdx zU-T45;veP{X&bN26S%A0GwS)?IW5!PXJ7g4Q7F!CfY_8%XqcTKTb(IPmtASEb5_S% zTb7ZlBCKcCSqx-ywPFGw$3xCJ%@s0!Psj6>D8}MZp9r#(P3OA>I>yjnV;RR>pvB_C z`s7*FPg zmJ*->HUhUVb)Iw2IaMe@%w(}eM2h4{o5&)$!jiEQX>Si_Bd~|28hIBJQj;Oy&;*nF zA43yQu)ATTVCAWaf0WND1PE31_K+{KbXJPjh@vxX4kLD{ zASTdT#0s>AQPpXx>SazsHB$s>d!!)_?d%J3z7H${gBdpwQ8Mq#TH-ysglFpLbU3o4 ztlV^@Sy|tc^R*XzmvfP3)H#{PtWlJ^R9q!)Splo<;%XZV#w_-)K( zTf)w#?lVsi@2kkhOS<9Z{NP$J?EFkScX>*#Odd)qGLODxA3<>6{S3Y&87tA~a=XRc zHgXu@dWM}9=5mfMxo~Bm<0)>TD4QurTR=%<6uEMTub>@Q&R z5Yyb3?qvyhS@r1LC*PJ8s@)lgPg0@NNKD13uiUw0JoE&okt&8qRcYn!_D#}7>(FNW z&c3tVAFTRBAwqn2bT0)%3ZySAMWl3+*t8w~dy+!3OPS=46S9x8@`p78S(UzweuTP~ zsS_jV1oZQjdjKJk=^jZ>#IdAx(xWUVpMpICCC06FmTX&>?uJmq-L)%4U5x_kIt#Gw zJwpA91%M)Hq37-X%8mAw-rK3(;}|z|38a4tr0enC_g)JSl8k0*waZlAV80AG%WevH zr|zVIh;2Z~FpK*xC^;(KM=l);FY$i6s=48m- zEa060O88$h@ecKh{aN4OJd@eLA1$%TH3pJ!iB*ox;aU+$naY7=Tch7~t4XkfiqI?~ zbhfy^V`0TUuoY;(5QSE;NQ~oQ(=Ilt<4_dr`k!>GEmV7>1r_?WTPf@5;a@a2-OWr7p z)b5BK;R#=he#Ryu9p25g{L&K z_(Jgf*`z;PJl!Y}{($g7_tPoH+F#3y1=}Oz)^maqZ016e6BEv=Drg=OQAMmPmO$zG zetyqWBYAM|XFd#djtdyVhN7iAcOp=!rioNxDtZz7;wV1I&#B4c(6e4{v$W$mXuC4K zgT)63u;k-P+nVxy$qvnYfs@b3`d71(zl~u~5|7-_)p>7ORe1}BvhGCKH5T^SE9()$ zzyTpj#Qx!yAT=H_2ufsWG+i_`ho3M|776X;L^7?R{n2z2P=Sq?E{%!#}?L^s4m zdYve+ozNGu+ZuN51t_5B)fRoeV^CfU;cYTWLyA7rO&N(wYl}Y7<&a3tY?%Agd@g^AQglobXDP-)i=rGNL9>fNpS6;r;>dA^aD4 zfyTq@V=SF&IlL)WtY*V*^y1LNA)TR-EZO!iu`Z8O?r@jfg)}wgaV46HBoElgvpW10 z(t4zaI$yc-ctH-Z7rDg&*2^0b7pe&4A=pY$wqC%)#do7{_oVFkzl~e8{q?fh##i3X zw`ME}naWKTnYFEW8&my?68{M85FaX8p}yy6Q7Fnos56H9CO(yckJ)v>wp~^ z?BP6@%W4pNez6J;@C;Ll0GrL(N5cWkU5YDD4GTT|O><|CX-JkFB8)m4+}NEgol8^0 zx`fRPCS>R9$M%EK#a9#X1(GEIk0RpD=h)`I3}}BLaDoA2^Gu#rESvr$6&ha<`3dc$ zLVr0ZesX@SxJTy#^qHtC^l4@~cZq2)gd(P{{e!#s=LLcIpHxg+Gnl7lvse7{{MbN+8>LF(pAQIh z%H^cn(8DrfSqvz)VunS-Tibj##lZx5?asP_C7nxRXV3Y(gziQg<|t~mJN7NF+xMuw zWYGlE?a$xMcKh82`gHrwJBi$x$T}Wa^#1&~OCD^Mm`MN}?Fp@a0I8t-Lwo+vwY1mepVx8O^#qQczOizeI zZ%?!4$?k0Jk_y`K^aH3gs}*QyN{xLoH;j=pjaiuq_B0trMR6hG2*pa9xG^L&RQ2=8zOhf^U(F3v0ZTlOu$n2DGqwn~;-OmXpr_`Ya zCCdii&mcKpy64$PwV^Kb8($o|Z2_9l)?YLII3ejR4sg3ggPks`wF`@viTDT37roNj z8fs`e%DD+7h$at5CQeWrL&Q&IplW{8Ga$y~FTd?We@M&*&_*^T8YP8s)t(_w=H1(t zrVht_h@bY;%r~h~bKcNlA%TTU=j=co%yYg7)S0v13GvhN()k+eDl)`yW7I6Ot!btq zSxL8Ph5Y(CsVB!iT|Itdh@>z|UgbQYNP-g;7NE%td?tMpK#jCOLTi!`7j3pcu1^iC zxvsLQs~r3U!h{8Qsy?k|wS2>`jc+O^6gX%y`;yN74KsM0uyYdO_>r*>Rkl+V0i==_ zib*O&fM9rAaulljYWbVZQ{ui-83a%lkHS13Lkm^Hx}tz?YDq^?TQp3U)f@q?;8Ur(6@aYe z-Fd++-egwyeb|_E2)TVoZU2;e_RKHSsl6ZhCIF;FZk22&H3a6Y*Df6P`0#}CN7wj+^;9TSk7E;f6RL%yb;u(m^$Fgf>VlXqV}XC&i4pECbc` z@$L#U#PBityZ6VOd($b%%t14?MZ+nG%?yzou(oK3u77}JBMdZXPJsb;*z4+hpwsxB z(q$)EAW((+Mia~7J0|zBG!J!YR9T(;%g=+L4@@ zPtxVsWvqAzAEjEwi1sWw4sf*slHyUBsfnMk<0ZtUSH`yot~o^OUImPBE`gY0pjGbV zS%n-)6>tctRQVv*&*C2v2)#viL!n4=-Fr~;q&`nRXiun)NYRra9-2gmK_BF z?a7(ivEc{)h{xot<{ob;Rj#~trWw6DalPNGj>;LPWCP3(SSmtYP27)9yIl`ZAKhYt zhzH)5#oKz#$>_c`T<1Qendq!G%=A|KiinWSxT+Vxjxm6d{a5#FCE=$pA2PXU=6vA6 zQFQN18OWM>^^-tp(HOAGKKj7Iq65rT@A!?M7zB@h7N&>+mM!NkAUGK6D&`aC3-^l! z0zT{uDiS}8=r0mi_ALfr!sCTvNct2r;)s2A5{gOGJ+`uznsQQqC|{5cD*u=yPKNdB zBwOCDR(?2V&3?}w{9?U)YTb1QKOrwULhtUY0iu@dcywG}h=gthG1nm(z0>xDijgVJ93 zixN4y5F2z?@)CC(if5>eS>{ojM`MO?3=KkU$$u0QQ8n48w!18~DdhvKJ z%uR?T+wd@3^dZ1oNB_T|k`ReK65!ShjywXq`<;GKd5taZ2bI@e2`W9p)7hyx;Xj5) z8rsWM+EdT@xD0P`iXNXY!uuSA-leN#*}wG@zhtGRbIBdtpeV^r8hUu2ya9RfOS+}4 zjJ@z7+~8v`T!6;Uci&rf!m#ovNt*0)yt%+vd)S4L4C6p&@=G7@ zHWDDMPf_c{b!0z}om1yDK7^<5L>?v2LXK@*=MF2|$(q(yOC?<%VA(pRt;6(09hEtC zpqhufBo!c^H+Ch@%h%>Q&sQo>%*PxMYL<8drEiaW#TIJ1dz$r#D?Fl=Vl4j1PoJrt z#dq@l$|eOD&-p+-go|JOtdI20dFUwedUMRSBut6%mx#Yf^Sr?2V$2f%)#Jd8_t9&k+(pHfy*Y+ZI79rL!D)97|C_Mn!!*OR zD|Q@Zu-b9ciupDqJ8$*7+NOdGIEQ7y33To+BlC5YZTYcpM3PDKLAvbUmK9^YX$Qtg z@^(FOR}mi#QjSWms3rGH;D+;L6i$}?`OjWYuBIp1Bi*Vj8a+7u5r2P^C4+R?X!{1; z_jp%Q11E+*^hX{Q@V2Nx1Ds0*!YpDw9V zw4V?u98@)L0TURCnq4OE*y-gSGUCk@3{((nZH9w=_D9pHKfjipS1p1T*~bLdL+nCI ztN8>YB;))EpMaibGlMw)A?MR^Mr0M0pKXNHz3n=H^iIYb_xzH41W^J317W=0YQ?AJ z18pUqPN|5zoQy%lm-o%fyv~et(YiH0ZF=G1-Z8FL$qZB#%>dHC;Y{{GRY}xbdukGo zV%&xThfkWzqgmedX?I8@ypEes$Z9=lzEjku2Z>1wFldk-M>A!DVStKfGz{<|E{yf! zZ{`BtcrO<+TLeYGK|=>v_%Ts6K@L*$a7}hc_rdsaIGgd6DAJUTGe(7`)SDQ)LyL?B zt+Sg$kDlyY)kfyXb@hqTR6%2+isbV{`N5#l8=xi43z7yM7Ajcfe4H#C%)F~My6Mvv zpXl}MUGc0$>9T)ji`R?b=}vd_L9_L-(UV?hC^BWG`|aUo#rm}dvNbXXj*!0onyF$F z%}Of@CZ^LJly>!`N93nP<$%tD_tqp@n3y^an6o^O-w zn7D+M;l%gL`A;H_>nigNX?Tm|L|=xR%BUF{3Uk4EMr3}U)XgtRW+xH(w8||Xp(*0+ zFW=f>3=RVV9nSz;9Xklx`E4u^Tm9gbY#%X^CC?p1;o5AW8DHjCcdQt9b?@Kxp_k5S zwR`*@=`iLMSu+gZ(@nd7Q^D3S9aabTx}{XGL>HrnVaKn>7q5W7aZ4l5Y_Ih`xTcoz z9~(W6*$^%6I)W-%5(7|ZB5C&2*HngLTX7hNb}1MZ65*%*rQss**qf7#6P^rZ{)6<$ zWMjv&Fx#cfSgzaX_uY;q_6gBV);f`UlB;k35?P|C>ZotJ@v_-@vML%AYDo<^Lrh(m!F4|Ts#c&>9=6}K(5HPLVKQbqFIe1+tgOd?8OWa1tw7=&jn z#H153K@0kf%BtNX4%nGC))8wW0A|*^T=SVHlVLhLhb6dML*f+muFSAGBg)BQjK50R zdf5h#wTmSc`)^RH!wmPldqIv)7%)nN{zUX=x&|6HPS}Rn7|7uLqW}B>_RoU|*T>`4 z*L9P;O=eLv(ok~*X5U%?C?@wu$oZ;H(t^fkf|y(t)Zv~9)tVLc8=A5B5W$B#0v2Ub zPzx*34R*{tAAx!%r1=ZL0qgz8RO^|a#@i1<&TA&@30)$*zNHR%X$BFZw2XN4FF|1LBIv_wc#v7+olgwd9E4*a?VvRnkn8nA%Qff6zi4s39X>F%KfukpuHj6U z-7I*K@pIrk*H+-cyItd$Eh52RM!%CuITzeMJhMM|pa0$N@K)Hm702{H!aH(zc<+0` z?{F60W!a)V!fWJU#W$Gn|*u0{hr9`p6N*uKcNWT3wS zEo?n5`R8$#UHH672~&25zDkDI^@P`r5!B%6uL1-`R?Dx!#siC3tictKk0nw>g#iqU-GhHl86Rj_A{Zpq3BF%qjE1y3FX&$W6Q-Sa?gN{PJB}c(-=tH7Al*y;oVh zqKCzMM@RRI_ZCJ+$9oTq4vFsw#-=A{El-_g_D7@|j9ic+t5GVnSUpdjfE$o;j2<~> zhfdsx9yn*m#W*IT0e=5VR`-1u57TRVEgr0&VT%Xpr)cp&e!TANYoQa3+)}9#lC=B9 z`5tRnse9}J{A8`>HfFxm?s>|_K_=(B*esZITRaodS>1NhZIY!yhqfaJBa$cAQ6&Ia z7d;rOK+$!#5#-5<)20=-Wt8`@QMD0-+K~K{T8}6%6ccwTZJqcX389^)INd`_C$`15 znjHtw=J|*l$0aAFTf()4lVcS~7v77>PNk3}B4inx{F76VJbIk%siF3HApA-4bnocC zf~N~$5<42uzAlOQSxJd`t%ja{W0!Vuh#3tgO-`(gw+aubW|Vq@tqNM`{khPmi7v;K zmIUN<-J>x|9#&C>`@)Kye#qralp&d7Ek`ea?v7tWKgntB zUZ#x~*4Y)8He0nf&`h2ycw49Rx|)6wZcG9`gv?iuMx{ntBEug6;v832;Xn^m>V*vgbWz{qmrkk zyDk8koXb);HMUnvZTSA!K2-9Lv`JhLObt_!A(-8U{f+*H{a(vP` zrH-SJ8vv+~f!dA;n z5Cnjq*as%*4Fwz4WFX39O8S#6OC6a5k$G$&det&X^HkH4^OX{3v$)9=p;p7Xkv9iCVi{@$OdPw^$FMqyhfe2w z3QX+RV@lac1bTz>r+Mb;V+}Lr^rY4bbiTtI=keuBd|BsgN0^-J9TJPh>tB?y2=h8^ zy~d5g9~Ty_S0jhBEv~BQ0dv{dEmz9Fxt349%@d$nh#VzCvR%nHX7Ktt<2i9R-{vjs z$x=|@i&`60)@`^w>Fr?q_^HUi0keny7n=*>F4BBJ`W@!EICrvfZVS$iblDYlOqn-F zYdMFxHO}QhIOoA=k#Yp%N_1GV=`dcH=RRA)vGvJm^CCSGi3~*C}o{({j zvG>aT1Fth@HvIx-gu%;u?Cyi*L8`j{Ht!9h#J{D=dP@a{#SH~;2{nyd{Elz>g&5=Q zLWQmIw3+#Nq#Ir@v8HtB%P_x`9VBlSzb0>ug9%OtG3l{B6T}y9D)BzQgU`hT z19R`@TN9BbMu@1$XJUl$`#nY&m^+&nGR#R#khSAb(qmI>l1BO?i`ZyKPPt;)-?Gvt zH!XPP$mpIPLy00vhrR^OZ2Vam)n6P!?@$xlh$U`p_sHQTx7(HuQxgP*f0d|C%~qJl%yFjjNp?ngac_m> zjI1&bzF{8_?lM|w>U)$kBCUP)pDQpeP={qCcdCuB-J*DlEO=e)RWU(I*JnErc6QRE z<1LzeTckww0k*7{)1-uayKb1|^M*@j)|JfAcw9yl}$0L`5pd$%-#W524N~yJ&b(K$S+=-^&)##>ib_^*{;J zw4vtW%1CsC^qvT{{MOFkj7h86B8pVF*~R5lTWS^;@qUTvXE%9b`V1`&bCzk1$Qq}! zuAiK}OUUePpckTQdUU2$r-2YOZT~>g7JuJL!mS}Eke79_6bPbaP4X?l&dI` zR^a7{SI4%JN$TYB-49DjGM)rPrL~!H3f$fu@5WWc6X^) zky!Af>q8G~Q@Z9Uj;5lYCB@mo@0m2&z7+KGBcABn)@tRn9;E`9cD+7_6@Qcz|i2oR{QwM zyzJ3nuY!OwW%W)P5l@jg3Jm|TvFsJRWhZjBH&LHPkup@iQYadmcYciP^tQ%)TQr`z~(UkU19ce=h&K z_&;A_#}@Z$M{}dG-8fQ$Lqte6M&_HkgZ?Z&SgK=#Iijzi_h6nhIG40LugAYAnn|8Y z&R1>BGafqkwj!ZUq<|}joGI7KwIqRk^|Hk!+YEGO|tCA)4?EgddvnB zEAS^}hSyp_kn>uz`aFy{pvs#qG@8fP;z`5qI1iT@Yrz8Q`OVGLlP>#a?pxD%>k;F@ z1`d3n=d9O%Bl;Kzg@g zhU5^zF6N*JS<}j5^EsXluY+@i5PEmE9dWk6%$01o7nP?Id<_QASN)I?z`U{#woMNh zH`;$ygKbrSG*@=A!GVR-Mp;Q% z*dsJMFUqM{NHhkcH0&N$urr++EqM2`x|{c@`S~S2;XujJft4dp zB$cJGXZm1Xa$gu=q}gxKS+7(B<1VH&;#}AsdQ6c}f~#4pB9t7JVg*houq^7;jHFcU zLxs6SgY5}VlW+@(t`5@I5}5RQbJ#abNOXlxnnCt}8;!q1?jjR90r00k?gNiFf1%M- z^>H@V0_i?%LM)PH%lO(f$Y+}#^FK467(?lowg^M1>Ay!kQ|CfGv)7Ay_5fLH=WdYw zJ5%5P2-(CO$R^v*vXFh>7WIYfshfc8t(P*8P5Y%=^KSO;4s0Xt`kaEh7?5W7>i06Q zkl>Y~hF_=h~vhA@Vb zvlaFt#hV*hLB~IuLB4J~>@AW1(dfRAj3JHW?H=WL6nKpm3}`J?Q0IKaB-;kca!B!5 zniB#3pZ`w;_{0{E0ME!0AVCT4T5v16Jb_{z64NS1fSJPm#zupl94cu89QRz#3l#OW z8cx?&+=hb5Bw04^1{2xRB);ewJbw1bE(A;~zD>=<#qgCS;M@4v67U%NnULIS2>3)> z)R#=&fi&GmU-%zEE7}dT|1SDpgI1aYT8I5C3)(%ls4r+23AC{WG!L=2dx!-EWi31t zWBt{$2G`T#vu_=E)xJUo6y>iK9{V`r4RnD+v;4kJwXS|%Ym{Er60px4in=J`y2P(I z_MGx(u63uqX@37NbMFEkRdp`>Pcjn{Ai4((8Wkl9wvoX~fun&zJ3Ex8k2+9H?A z{D1G-vnPqt>-oO#`SUzv_Fil4b$Qpj-u15cwpaK9y^lX-|b+Z2>02l zDu*Mr;&+Lk!*SJpv^|%%d1vyr>;c}m`2L0>UhaH|mss6kY!er2)A_?3nD-p?rN^jpfZQzoApP+XJZ-%!P0kP_Uoxl}%}USSVPHVr8I zQG&ANl$C=wWho&Q&K*$bbt!b7DukrCU$Mypigih`Bj5tyg4n!Phi^0vJb8;2W_SK% z{(vw3OTO4FU)Upl{Cfwc4Zu`MR9sQgJq-?@2RqX$=tBRPoA0?Z3{gA3Mt0a@_WV}a z^EGO_ftqE8ZgnajH`93?qb4kVY3~hOHm*O5917iu{_Ifs9jZSo9D4+NCcKTs8h2f5 z7SWsmm5_Ls+i<_AClNQzjU|0uHlZ(;bcvfr3t6R|Fw=6-n^!J_#EU_gzJ|@hbf4;= zcPd{(_dX0f?%tMr13rjaNhhL_nCVUtMFCd26Zoa~8~cVNf#4$0vBe}m)R(NJ)e?-M zdwpi~r;d*LV>g??Zl{WlDgjv}IOcoS9s@O1mxN&3Ziz3V(@1g}7u^wzJ+2!3@l3!Yw;(JKk!-Pk~?s4cyoQKCgu zx=5W!$mtc<%M&GR)4#espl`Q{BH$Vl?{r&LpdHwwtKGc6(4&az(buI%V>3Pa-@K@U z`>A>)VK|&#(fBU60eUpo?a^z$>_6E9d-R-}cd8x{XGUiE>3V@tTzd4tO#-9E*s^^| zb?6r)a+}cHs5z+jF?q&HA#*|VtLJCi)$s?{d>J@s7ofS?pS@JA^k< zrjNpAV6WwPz`3SG%4SPhQj|CfZFMevRSo`ZwR!B2=fnk`6k(Vv<_p3OmF;(Ydc+H` z1+w+9ggHFJfhENu8mmamFe|gend$b7#O!dUWD{-TIiU~94$rQXWp#V@-3p2@LZH3w z7n#ZKH|&*engi|8vgqz{)B2IRuefOw+xj`KmjRFdK?{|hBWr6{lCiW)kC>YMS|*t_ zEL|SuCT7G$A<`yO7IYE=LDEc&Q_bZCJ*?{$K|6*SZB+U3K25 zc^QlC8&q)M=NXW(hr4U&iEJ8Ee~Gd{M4S9P_gke$%wazg5wrx)>1GN0m&pOCYb*0ewAGj*byY&EtQ2gwrP)OKRk8$hZDL#o$|?F z?Y<7oE;Z#9%U}nkM{I%0Q&nlU2KW2^g&zJ?q0hit0)7ymO1E;j9ai}qqbWPKQG$LG zL8|T&Wmz$?jR;*&O-`K??22Cw2}_SC!y{3NLcOn%sXcY2gqwQPnd6X**pP`912;8P z%q1Mx+Ih)yJ}03e)W&%e6|H%)4|mmWH1q}8Sh_LWmMv#~U-oCW98v%4trF7JM@~EUM&BDEV-X@>xEo0TEu+wH4Fi{#J2uz}CMe7#?$*7TzaVgYrUn zo<)|9Hwtr!9v1q>&E zS3|!Rg^E4szGEViXILKrLRjDua;CfW_9LTbxM@n+QssUtD+*jgI4zjw;2e@UaBh5G zzy)US&%r39U<7pf1L=bK2cQQR%-_4A_Y;J70Kao??@y^r(*7jg65t__6M zJU6*NtnM%_fD$Uh4j#q>Fa^AcdsM>;c(m(`7+qlCl zH$FVn(xqS6c4Y6lTSxCEY`e!(kEJk-=f|%Ic*pCbkGe*5iJiGP5+lwGujJF@UO*3uo_Hn11rU>MtZuwIHJJH`$Cqwt4Agm!h7k(!_;=68Da!c{Y zd(#5z0d!u1T;fRv7X-TBGNwcrkhuF1Bx4SnIAk=ujn$vnT-Fc1iFZ%+?bUzFw_^Cm z)-y`S7rX8ZUABij92_=1FJXM3se>F%lE^pH7hO6KD>D0zYme$$41c=>^ZJ+>7n@#w z;0|8Zts|o4;QwLps3g&wLrf>?R}Ugm;Gu4XdRtF&)OtNOIeq}uHgwE|Ifq+W#o%aq z#LGX)Oq^j=9cXHcY7sQ#&NZDf*{`_S{g~-TvS~IBk$CT*6e=0uMP^uw3OHVK4a=ee zZT&S95NC|1vO_=4QVOkcD=ZhfQv8 zfc@f_HM3X%Y)$tgHbRu1L;MQ%NUJ;1iwPLlBBcdB6B5UA>N0_X_KV>!aZcUp&FLke zMiV#irMsq=NW9kG_0BUAc~9@-QrwzRko@5>9!zYjS#Giw{}xw0wM$TeSc&yEQc_!g z?F0ct1^~To8Tu+=x8BVReqX=zUszu3Xs{}*ofIG375PIwLro3g`khIM1DBhTKgbaI z6mBn{Lm>ktekB`#)lHo@t9dV=Vf7GadzRsr$#DJBDMkc}czTmUD$*mq=(d{~beIp^ zL6`BI`9ux;mx{W?k19h2D6%3XE`dNi!efcxIR>^~s=myHr?Qv}Zc=)z_DB0*)O(An zaIeIa)f%st7xVI{b)+}OBb|`AB)v~F6qk6)8u1U%E8a0?Uq&Gf%Q52LGb~4B6stv| zv7rS-C&(P-vs&J%vXa=7@+9Wh9(UmO%>{aEi3m=tZj3;&lXttAiECM4-+X%S7J#O= z`bD$h1pQzAQ^%)DtUp9F)Ou8c{s}JNLQk4Htj_1*8BuYIqaOE;xyw(L5^Z%f!0nNp z_&z=3R86!8BPVGP7N2^W%QJP~sOlDuP;2~xq}dTo7^@J$v-}v)V$)bAy2hnEOFGWQ zc`pib+Ij6b{Yp|P3}BO!bdHp=Py3R>UZ#wW-SA(TS;<({#H=a}+7cAh8JFnw)}5!Y zsg04y+vvnGZ~Xj?3Mrl-ZR31IUn*wpMw$O!iCL@c$$RhNiC%mu&NXu8oiY<2gFW=0 z$x!Zz<54bC;H2s%VOx|(qtmHpf0U&aYG=RO?Igw$gC{S`x8BeqU(I(Q`=4&v)F}6| z;^}U2##iY+!-`E__P(NpX*Ug8_`XXEx4DVX!uOln3@w7eK-K$lk)*(ByPMt5KJor+ zni42*4?;GfPg=LYO%oA?)YRZ6^rNa(ZkpO3SGhy#Gs>?TC5-MpUvPwbdj+;!xXn-Y zu+$fV*5OSY{-VgOSXAl79>1VEefXo>0*F<2nsdxe%q5qzZleEf1gfs_VTm_n?NfeJ zvdvYpuZEc2t2r4DR-*3gPCMFdkYZ!3%7V$r!RyZ0a7cQLoaB+r#7=A@-nlmAH7#IIO{u9MF!=In(ls14C z2_IIh9P2nxDDWJUz}uV>iOXjMx|NU5xO0r)^?q&DJ2LvME9%ax(2JF-yadfuyQ0{Y-PxC4SEDM3i7^-Idc0#D)3bkdr-%uvPc>p#FADtaxB>H7EEq>^$~2}V~`a-CCdM!yQ)Q56K8 z3@)S~pxe%*Y?c5Ed%0|V8|;dlK3J@OcmOQu4Z-l_WEPUemUWj9Sd{eNAzUP76}#2NaT{dPrUl^1^6Gz@+?Y%)e4~ z-H_HF@=@=PGNtbR-qVr+kQi@byWF+|h!ZY;X z?`u!j?b*P0XR`b}Wrp@z{PXmw>VIYWMEhr@^6{SM-2R%{0xop3M3B-K1uIaR*7mnzF; zIu(4SZh{fKdOY}M-o@wJ=ugxIK(=}$@iyj+KAQ6WNmC*M^pQsE)J(?CS)DItWdpkdl*|DBIZ4zyKg zkZ#}IMtZPQTPdJbh6kG-$_$lV!)2Wwb<;93oO7N#ohS`3npfQ_7I0jEF5&l*-JCF> zN6jztqWL4vwc|uH(}sC9f0du;3#j~kW3^$GAVZ{tpcx=T6#~J^@w|t45AhDpRDwGZ zkfvfTzaWi%So0TX!v<^qke@fcHuyTq*CD>vIb~XHwAocrEQ`)CttaKj`ZxJW-cb$0 zC%zWq4*>}hUt^vU|0T#w!3Z-QDUF)vr$#&X0&$LS{V`ekhBKYe#&^^p>$Z+1->m?2 zf|}wTr+hv8llVT#QC8kIUuk&e8wsPB59Q{{B*#p%vx|)euBaFXcJ6DP*mOuGe+sSmx%$p6%i*gQilatpx^XB@Q zH0?jcn(`ygf$Hyg>l=}$n8H3~TP%uvjl4w7FlS9=bIq9!&YH`<-!=w9Ec7RAl=)Sn!wbH%{r zqUyII1O(5!(d`{=o|Rm{hE3vh66vrRc|SQHf1GSS`AJ$$HHWq2 z5?(lRtq?mBn!?0FYy62*K6x+52ey?$hC#2nF;3*G9wraWnqvW75@*RDL;i%QjSP@5 zvPj&DIQ0@kkq6GYkvHU_B>C@?WGdoSjC}h2e*r9G-OSH|MO4yy>k8l@ZU}=zj>=wz zC6|ULPrq$>DDj;1(o=Ui_x;R*ATk~2VU>YdrD4q~FceLNta^;myCm$|tl}u)cYs9? z+cdCPlmX83$@BAB{i`0Ju3(1~aXj(0TM=Vc-3sUZ%>DQQ%V%@A0}F6$a7gumA%v<~ zbY29;&uRneIwC^*nw;bwcnGJi)K@lUDAl*WB(#|E+{LUWr+!IU>gcVHW=0nvVd4=t znDJLg1#sVR3A^%K(3-wTvenZ&iyzulj+L@ageTwsBl@j14dSJ0@;@^@oyZcWg^q;A zAb2}Wo~)3VIs4WuF5LPpL7@XGMCWvb4y>Q+k>D|k9m$=tQMA>uPhUU2%GxYRb4w&C zemkAI>)*1AC;k=W4-$y=B^rizM?URlo@xbr$<6%iR1eczUz3qYXqp$2=U>UHOZ-V) zhbobR&j0sJlLY6#)jh{=aBJ&#j&E|)CgKcwSETm|L|B&S1jqb`i-Nm88=ARC3-5y3 z5{PR@*xL5Y3g$Zb&9BQH4JWlQu~Sn9HLScZQ-j>%p_acsbf+xhZq$LYzW=4Kz+rvp z$CAY*M2c!yommz8Lt~WVc_xAhw^U}XP3;qdi>}qEvWyaRsuvO=y-wIhqRYn!YF{@f zYF+K;K!$ z9{Y(gA(2!OvWCsUu<|ZjnK}P7AKFs4>^%&-?Y&9)*k`M5R*)N5wN~rKQC-pGl8)mP?sy1du9$;CURY|?oBaI`K zrinTH4`HiM6ZPuvliYD5Dw8l+wGY|l!!A~D6Ab9Qssp7STH5ch^*L}C%yGE>xng^)#D@D4-! z*;}fK;eD%OA-$wu4sWAp(h;ks^4^uo-9L zFE5B%GyDJ>1|SzZWwtVEfK`w!q(Y7=;(#~9_DzTixB4QDgyF_wBGhC8#WicOo;cyt znl6#{3-B)yK=*!*H^BVfcQRlW=m`~9C!}3&s=U(NVyR}9>bfurO;x~yk9*hl`*<$k zF8yi-^j0@tg)kLkHuLLc2JQxOYEOna{_%|zW7wr?N+?;9{B97s4Tpt9LKK>7+?u5t z;Vu`8Cir5*hA$27RR@DfZXf#{3_NZc-3>uUPgkRv;8sRz7(`bqY2x$ADd#u`K988_ zLl&6n0S7+Al66#XHHoA*7Qpvwb~B-c&rKVnkE_0N@QMi}#3A=FaUzHM`JNeeVJUMp$5BYen1#hrYrh`cqa{w4sp)X0=}iEoTfPQHK3~8-zjv=7 z9Zv$`-`$Xba1_<RGfT*pA+FxwqXf&UaiYxaOlSE+7aC>*-M2jWKuE|U#C?>5q zZR}((P`#5L^q$RI)bepHnT#;lz9K)}!SN~OWw%Gfsx|deK!B(R_NTmrgA0CNz^YAG zKO!~wnF2`v6~pO8@Sb}kzEu+ zS3yi`M86^PcUZ3TL3CO=LRd4x7J*A%Bd2U)x>tBmSvPhDUNQq>y9}6Gz5PK@=|VNDqTTR^%5*JLO{r*GffO z`EA4L91|opz+J40Rsm)S6oLxp%lO0QvhMVVRyIa5=>Fo11eM^eV{%c^;q0LC3bUsc z7+UyP?>r%LEExN=!Cw|`xQ;F*Prr<99Pe>91%cc)?U{okYrhBps_xAI!0~z=MD<3> z&%DcyJ>Jc&U9 z@h_JJXBt9t>-m4^g8Sl0gr?h+0B@q36To&garFCMU&%xh0VIGbe3`B^_hXk zoO%S&_5mHW*3{aTbuCO_a`t72icc5J3R@j`mi^#b6r*YdMjp0iKbFc<#9biuAdHKk z88Zo9iHm`{3Re)ySv99bDhHY7vE?#GkV!LtK<6D?+5gXiD}NGPIXLmp;K~IqSw0o6 z_}t9Dj4Lwysfxgzb~{Zvs8a$U73w&2NbrUpmh?VK_pHcc;5wfvz66}dBlJnb+m%6m zP#$^3QCStiy$dP=d*fVW2_3KJQzM7nj+{9$>(2VLVE&w7q`CGsgp)B&G7#=~fl%m3 zed;;&=}q#HZY(@;@w#>LS(i92`IAlCVdV?2)e_s5lx()HYVpidJk7ljM{iXPI(FaaP`T8#6qg zYj=zi_ul4EVr~h<=tCoM#s1a#Lg|j7Wz5d!aOTdL&tiI)97?}>U!x)W8)EYNt5uo) zp|R^{`S*P{Ib+3nT4ol`qO#OeaM#QNEE2O|lw@WBt(!9o=55$qF7|hYip7g0`QlXy zz!h}u6aZc<0Xs{PKS7pDfaxprgZrA;kNaEV-gKS7wUow_m6s~G`rHoolRNLaJ2Mv1 zOJ%RwLd1@Aa&t(4niaV@a(`tNtF3F;@&%Or53B8lc{pYlZ2_x1!5;Lm9Y#a@NL-|$ z!)GxNZQUv1D z0K+z3DH}NxP4}DAi{uJvbImU5H`kOWBhs94UU1@sS%l=?}uA!%RbCq+w$?{(r)`GoA9$p+!0f6&J3 zGh|3od+NMo7pdkCq>ygC=wwUbCrL)ykpHZw9xS^=Tep6bd?*A$vcE&Nw(bW5(w33d z{<{M2N9K9~lGE8-bG>wxqX%C-%H#<{5M}Jv8flXYh2OveL~EKrvXM~ZIN3Lz z!t8j4lOMCE`-M@n*2r+Rb$YJ0?rLxQ!GfW?c*)5;IKR5-ud+jUXQ(QDRe|T@UA?~q z+!@S?+3N+J^j1MP!~TJw5i7?oRG6d(yTLiMb=#BQuN0hFFG!?V4$VI(WY1ZHe@dN~6S8vs4;ly=ik*+APxK z3z!tmpQ8<%aai+5Io{`LejU}r4C;xZdMKwBJ;Xb8L}&3%4fKjq3HXiovbt3# z>E4=Z_DQ6S`FyEJ$Y&O6Z4tZp5Lq8@FgnJuMxq#6tEAh8b(TQwJlfF%T}E|xuc(^> zhfS61ecd`tH}0vW38))9CzT8;V!_5(Rq?B^R0)2#Y@&>5lNu8g)fv-ygOv(y^(4Oh zbZr;)uWc4MZ|&{XNJ|`Lje2=7tovp0S+7@BZ)4V?!4H;AGJ^LzM2Gw4(%eUzmq$N? zdo^3GD{INsy}!ZSBkFxoZ}t^bc{f)D+m}AyDx}XaRb}Deu88$&Ser>epO~d#PJT>p`yiCP~PkttOq|@@LOwo;pk1y;Pt?(y^EMMh`58VNU{>Yl`V% zICw(WVs9W=sr#qIbBc=AUC{8{Zvd>2wOV{jfQW+HRFX1Z#i}JS`Pg(HBoSWdZ}YGE zEZvV;TdS&fS*Gj}x_6tNI6g?bM+E(eV?(r+FYs`cJ#x6wn#}yuttH2GZGG)Y;`tx1 z;m^s4)gT{N*dzV+yd%2RmKqkeLwNag@T{9Evwli4ekhE+&z;)3a<8^-hA(1$M~2$| zX2H;I(sJF09QB|Fx7Ft9f$mfxmrL)}gKdjO(mAWWc}7lqvY@#<*J^K1`rCVpn`ii% z%e|OE<%;$ddJF<<%OjD}J z)~;l}_+MDtBGy_dpqH+d;t}oHX8F~74n|Cs5oz42t+}5Wh*}Rw6;W%g^Z==1?OkDQ z-3?qrxm8=|{dk|={#Jor-|i0&-5Y7nRPt72=&LdN+T1F0t$Z6XACR`Fa)l8K?x`)K zx4Hbk#vR48TR+|xwaasR4(daDqGr8(Bz5YUzBu*b;oDU&q=hvBCIZ9(;~J=wd}7Q2 zv1n;{w}hP>j`{X^t}I((b5vQqN`WP@|EmweM4^Lm_I)-`inH&JOp4^F`Nm1`o!mBm zvS{i4#B!G zrRalJDcEzWZ%-C$>u-$sYv3fV!qBANQ}gj_+H;%iLQlAU7q`zOGd+Xm%f>w#Dmf5+{mlFO$bFS}G4R*)&{wPW=o~TX&tW zOxgW7*>r9{Zsv43rS(;&SU&l3FHnzFAEDM^@sSR&>{&kGBoy^Wz}l|#*%iLjg_IZ` zzd8d>_B2mBRy>rcS7nO0ix;A0{U-3b9(-Pl5prv5(`(DmsI&{e;IN-JRroyKk4R2q zn>%6#UFy|on`+N+uAa$M?O*{jH7a=#RcC-o7w8Ca%EEz@v=e-u4T=jm6{M;2|0=LA z6=09;1NMIjF7yZXGPx8%&Bdvq9A79xSJbK_u8nep(AE_W;`2Z^vtQm4^A967(eksS z)@D7uGZs9&?DUG}Lhc@lraQ@4fs@=)oKbhA&aB|WD>EPN=ELE`oPv7r58CP#0;|bu z1X<$wYIc>OpXG$AK{EZYSGfI$#@r?gr(v_KpHrOh92-JTcS6C$uB>`JiZ2)JzKSu1YY%! z*o&dxA(&+w%AJS7{TI-Pzy%Wia(%nD?!GelUZ2vVtr{(O6VAD1_QN&0_jv-I?O5=e z8cY(l5ex14D(j_kZT)p4{6ZG+*Xa}f+d7O6vL8@D#s^cA%R`KG4>OtGYKxS$mSdCiuakaW%ot+S8H9MeV};mL9a|K00dF#k=)q<%FW={zjkj z`hq9vr8E6VZkYQY?fcLegW_4`mOD zRexAzovg5ZgN*8AEci#w-VRmLm3gsYUorpRPNa3Xj`rl45$(CKJ`%aSqKzdUy{V_} zOg@C`cp=c;aIBuQN$rKKj?{3S+ZMfTdc#qbc6zkBjgK33VZT#DBIb_;iIDN{K16Mc z*XxN5lHiF?iLxdV4Ybb}!@fl8~iXWKTENUE&L zC!ZY5$WH{ejeWJ}eQO)71L7-B31XnDp!`?o012ml?}>D|_gD1?em2-68k;wY0&IF-xb*!Q3F%*0TcMVxGKl6!VR=bzwIx=7#Wk+_gT1eO&Fu=^WD~fLKZ`&J#=NQc6&*bwU;s=zh)G6Y1=l^2nMBYzvM3P*xQE z0K9Derv$Hnw&x(t{|!?>JBQZvEvvtGMMaSFu&Ba;E`@lJ(Rv{(h`9_0UeQ|${b6rc zd2`_eW>uEY+f{4rt9YQQ40F7CHSJs=$Zc=#>Nz6WxwEZ$@Gd0X!}k>>0>V3*1)saG;f zimm-`-=i4efIX_;l8Vx-LcNeY^zBnU@BH;8b-e$QI%j&b?^2))CF=}(Kf)+Dpw zu#}9%2^Q5+p2}Mq&z0pf)vK-C!g8ytW|@_1>zvdL?5UnWHyRkdC#hh+*;$B`xKDl8 z%3OHHc7$>d+cQ3)pDe2}e`e{i>{Qp3l>x2jR^xxjb~Vi&*``qF>}lGwjRnHks;0h7 zQx$B}!pCMI@E6FYsyyP|o2q4V`}%-klw^kShTfA>b$>zvB~SzxtY(F`G!Y5K<%}IbhQ*dLmbYe`iOPog9El&-pntnt=9cW_FFx$o!z#)rHCsWi!Nom z6>-LI_F(u$wtdTM_av|(^Q65u+>7hKSd$fVDA_clC9Rr z9$=hp_Dxq2`RC|E%sLzHHA5w=Q;~@34`a|4>?BW4x5o{NR&P-RVgX2@2KfJkGQ_X= zKSC8WfDB<61v%*bum8W0f_eW3Nx`VkkODC;aY%ueJQl-==Dx)s6rqP@Qg?f1DXAs$ zS&Go@Py~?j*L`Nl{OndT8^n(TAD;D1G<_l|v$K7Bc4y>NE7= zBZofxPY6Rn#BxZ)-$fb-9UzQ&pvNH)qpvQE!7h(4Zz((n{6v5;%G(2mW=KI&t+=Dw z>U)Ifcju+qU6^-Rp4k*I6y zkX*N?!%gee9bShO`vjSpgv(>tzFxD!BQ_fLH9pN(&I7hx7#G)WI0UwF`( z{kTr>{TwVld+KJOL2VMVZ{2#HmU5y!2M{AvdE1gFFZFqp+y`@wd^z<0>;tb7_>{<^ zXxJ>{%+gD7Zx-`*^?^S2H&xajBEbU-E=B~*0TIF4R%Ke=bH}g7(-7hlJ>AxG(7f)~ z>mw*F_ovQMg|?C5lsibiliRWI?Q(1Bk0!Nj?|EMjo~S!dzIU4GLGl6fi0ER4bhwHR zPehb((%LQ7YWM@BwRNu<)g9Bcb-q##bcDU9&(o|Mo7Pihke3}_+9G_YuI9EE|F8Y#Tb*Utjn~|}b zjh>|XCT17vRNC_nPK5}8a=3Oaezu&$%}Eu!ch#UT;A#%tkoV}41s4y@MX=Oi`cpMdeWfifc%-XQnCy2R^@R8;+RI6v1Rdd3VANd9PtGYA7rh4c~)Ln#9;PVIy#y%@i z9tftsLzo-u<#3<^WyE$JwRrN^=K-K}XQDG5KWJ6W(SLmutC*O5g*_?H6FjCRmLcy# z+GMXnRN=YEQ;#(B710824{Os7W9OJmPCti3*S8#K{SoeGYnad(|hf zL)K32ut8IKC3O)uOGaYOCMft^M4mZ@m8fT!aA;>Y^J~r;mq{@fkJRDcS9Vh#Mz`FG z-8&y+K;Tw8xMlU(OL<6LAl88e9zl+FIA79>CB43Vcxq64@38vz3$=CaGws4_v~{~d zyphC7Iy$&^wC#K8B(>_^HkvJ#W;1Q--X4U9-9@RfR!92*)K2#mulbx}-x1&yPc7ve z+joYyJ5#*ejCB{epQhW&&86L#_E<8Waw~lA{BqN`HH>xO-BZDgur=Grl;w7lBCFz- zOi@!WuqtlLz7$#&cVu7uRu=}u4}c+|%(pRnQg^y5W=~yFVZ~1R!uB_bgdRB=?5_KE zh2>+pQ8tQBbHT_&+ex$H7TpT(C@`tt_Fbb}vCcxX@{ZI@mH?|<<){*cl#q9S>WeVi zP9AC5ubsRR>L-)zenRDUFqjH6d{V|CzcK{*^@oG6XpIs*+Ch-l&k{rf$E-*)*u7A* z4!1H59))RI?69ECnk5jluw8g%I9T`f7BkhJ+8YFrk>Kvye+~y` z&$V_0s^;qH4)4yY>W*jr1hxgYSsh~FP~9EFRCr9KT@;EUjmIbeGMxb;^td z?1&$VSi8e!m67r}bL5?F-FUJHm)5@F`C& zRP8IPS^8mX&p(cPTP%329JdWiQ|K7N0eitAo%L-Agxj1YYNKS28OBxK~X5H zi=ts~d&Jvq`=&&^L<07OrUzr4MYU&4H~FbBmv;ITZdRDSPDQ)!uFN23?|+Gw!5(*| zQQg^Zz})VVm>)5x?odP36KQY!yu?ZW@?z)#H!=5-qP*mUvssguICc%_Ef!uFLG57| zP3% z%H`9n%BkKR4abhIz@G#OqatHVIS-^>V{~DzT4FY5+9N~LC&ym*Et~@xoTXcPjP^rb zkq)z!4GC+H?}8duv|RVP&#Ej7jirtXqyA8Cb5RZ?vcd|#4q8=A<W8_*VE7db6E9 zgOi}A?)2o(L47t3c}oosTZyF*A?x17{7p{hj4F2I+mjohVDkIbi^;5*8m7ahQ&LqN zHZA!ek6<4jQ>CzvM81HLI)uLLk^iP{t?@BTN_FTi7+G7?uw<%dx!P{drr8 z2;KJNT3PqYu>Oq?aR5775~}9(-YkWxxuX!oQuuTVRC?!3g-YtCEIoKcP^lACy7E(~ z)J8Ejzi{x#g4dZ=F9ueXvqXc^p7b(7q5Ai7WyfNo3YaIc(qPCkL80bJIZQq?#9JtA zPHkpF{yZ9v5H$3E8VzOh(-NbY7~mi{1h~$;M1f0NS&!{(uh^AXUF_Bk%Vx>`YbJgL z5SNY1LR0*fU4Y#Tu~Puk8eb(@Koz8tu)X*)T`>UmBBGIZiDk$3lX z1nym2!55VU-dDUJpE~z!a@B~Pp*r6i7kdr){NjpY{+E~=75hU(xjvrt zhV0EsikDY*lh*Oh20=PHv#+Z`P#Xw&l1o%qE6eaQ15qQvZryH>r?6Jh7IyH~-1rcC zg@_!-53pl&?(+6?mp7r3my~eVJ0WSDkUht&r{o)~T*KCIs}p0)= z>9?5EZ!@RgfycNx{YLzt%~b*@^9RB_>gHvRrtn6*ERdafknRoMX8A@lxxRQ*KUaYz; z`O$@9wP;N(7a;1bFo2%q8%~;Va&#Rev1jKew~^>nNAYI%NcKy6c7fFKGpBr{RLV;Y z_Uydm_aw2^oB3y$i5mK@t-E(=9z00L@Zi1Dv)WM{%u3jNy)Vi3>)q1nY{<7b*_d*v z!3Y@HD%9L19#PX~Cfa03iU6383#Xqfr9~C(!nQ&e(@6DHhLm{ZMe^v^VHBl_N7m8_ zPiNu@+6Gn`;3eO?Kmnl!`z`^3=oXW&k|sWs!xEQC$A=}R@ncl6=H_?{TD<2gyhdGl`NwRqpiag(mt(+3sut{ErkW{Indh{3AQhI z3v_yzdN#-kG1Y9OcWI-r+^O&jJ!|yH{!&@+tQu~+{N>-3`ZxFRpdG6_Skq z{X4lv@Tj)xd5|SjueCE%orB3zqvPGBTJ6hKC@r~b`4;$kUk<+fX}D&pbSsqMt1f<3 znlrr&L3|2S#qJmkRX}UL}5 z1X}N7fI=ihOEM&A78W)wFDIWE#bkT`sGscYmmSMy+u3X{23aTN*tPVRO5k@uJirrym z4j;(&K2cAF41f??c5@r%Yb?EHNpgxBrnQ#04YL|@-0`XtqkJ)}EAbe4)a+2j6eg0} zlbo2*lslM=G?^VsqP!GX{eJ3~~=H!eE8QMrI$FQTm#8Ll(!o-1m?0%l8kgpOQ>G<0OJ=8ZyPqg(z zII-nox^A`W+O)Q?cQ@X3Re=}czioYiS=2v1*nTKC9PC&~Fs{3D6DMz}b&Lv#rnNn} z83Bp>mcSzD8@<%02Rj$|Ek%hZE2^w(6(^KrrAG=@j}q$jk`CI}V{U?h=$4d(SCzc! zA>yXwrKGDw-a5nfS58RbbEKl+Cla}9d-8|pORegJaSuI7-IPe@ z#=mCRiGOCia9iB%gY#8j$0W32~@FN19!|PstXEi@4+j$b-dJhW{ zE@USS%uyJTlv5|6bA;Ooei%O^%kd077XoG8T$cI-4UzC_4j2tfC;1e zL@`_ZOc=p5kPhsaxTn3>8w<2^&iBromE5Y_wPzx@nqC$Ta4anPV)EO3!8`2P%uqP6 zCF(G>KTiHD=@&05yZD>JxFxR`=|Te-+}sx~@>F}_M2?C?8$KMvp#ZKsA@_@8GGosp z5`MXXpfd4hzV%WM2CF*_x+k-kPtL5C!kot4aeqxk&J*Rb`+N8IwlTM4h4ASuYDWK= zUps?~Us+AHLy`Wk9gZZ{a78q$7fn6_>k&le(!#i%Xk zi5Vg6w^DQd2Q?Yqty0mptEfl@C87~k^BnjO+(3=Qrd(}Zk>-8X`^T_%zv2BP65OY) z{F6FgU^0!x2dKqb`HbasKVHA#VUS&d88);FIKTsIUmx37g-rPvbA)S!%k)TGzT|J! zd~RoT3LmpGd4p>6(`-LT znSL16dyR$@VqCc(A3^Ue@Ea1`o_K<+SMkESp5E|e*sI6P9VBB&Mx@Wy&9n4h%RI)c z>x~F5{J)YNi=!Nu5P}_eDD@ni4p4LD*s3=c6~_w@()Wr%34x1UbU2n@dxai+sdfkx zK1HFzMHy6JUs9+*Mww&?A`EsA0X(pyCAwX>H5L4aJ}!JAUl7{+2L#}B6hV5#+Ciry z-alb*iJfM+gs%IBpv?svy_wE;_uk`n{skA8^?#&&EMt7b7y-EaKODfj3?SnD16}@6 zSSF_`@Efg3JS_;G1m=N3nOPRr?rt?dm=f&TDBJ~VzI*OK*@($zVM$GJlUk4W6_5Wp z=4-(u7-b^}v$OD@&AFZoK!vQ-eLxL_6ket1WpBv_CkpBhV4{ zwp9gQjIS0mXkrcudWzm>{VV8w8a505_MM%-nhgpo>*-XsGpNGms^yh;=F}|8&r&J4 ztvU-&TzDm3iR?dRF>Hj#hcRrG@GBAXbYb9%*@;*F9B_nMek|vaQ2i%9E%8G^4{H}e zjv&etUlY^tJ#|6D`WBAsoO$&l?fLN{>>mph9Ya)$-sIeDeGm*8l8hJyI0&D#JQ4}My8IIBm1y<$Ku^@x=c7EN-6z3tL)mvyQG#4L-Iti{sFICOfc9V!bIw!TFX6qdBS)QM&k*022 zUO^j1aL4kov_?aL9%)Au@276+K4}Wfm>UVcE=}DQ(PAG-?1}lh`Bf%dFOe$($2IHL zS8+CCP{IA$DsgCwm=QS9+^XsiWkEOXS^oK`b#|4tSGT@(i(!u&WpxBPyFaNs97VcvKsijhHZ6T`LwbeBGx}IyXE?Zf`H;l1TyPCg?vj8_iOt0W>90(k)ngT| zl^I=ZVpR^9owxaBLGNRLH(NwEt30XK-8Ewj@Ubfio1x;Y%_GYvqTHR}E~jbh3n6g2 zf0{M2d73$~ zzb~k;C!HO!+S$5*IV<7|tcX&aa3X;d9NN>J=t?In8_x2%oZO;Jk&e2zklRbFq`Lx< zVCQnVzhlC(1$rlfxmM;BkMm^7OPyc za#CBI4&&Yzwr8X#Adq`C(zJCkiz5`Os@{zU_S(dh+=YWrw$~r?)(%VMPS~oa3Fvc( zm=1?>?s{wD9@06!a`xz1Hak|mE!zGjM!c^^tRAUCw+eHR5pa)3?xHhwD>R2giWO^~ zqnqKi{4wT;u}A1e-3-l@Tz+q~bv!jgb6`nS6Y*BpVb6gn^ulo6LWW&AM^|^GTf@jf>>&aju&S9@UFy00Pyv|ZTktk)5bdCaeaSkRcqb=y zg<*NqJ4C3$7uHMZEiJy>W-M&fSLuX^QX4iZfoeTxbGD=H$sPoy83`$Y%b!D2BT^js zKGaMg5cQNm+$=|1&Y1{so$hh7=N1Cvb9}P!Uwhk|!2c;Ur z9$Co(n^at7KPYX)y!+UnhC<)8^(u90{@C;s-y4nEa`9SeREwZEeT z*vhj!+R!fNBKm|=QU#Z^3YpX8}6HR5%eftH-xg zjBU<|5y&RBSC{(3o_XUkS>dvIR5JwY5}?%RolY<#GlGW-V>F{1W5qhEjm6Pua5kKYJ$&mmo7@wWG;kTC82LXR9l& zyiCoQSF8#!4eNO`JhZYjZ1R6>;~A0|&dih8uc!(5`{xP8b7{D*qmgV!_4YUEC7Dhe z%O3%3=UrJUJzf9Mys06<@Ml3F9FZbJ_sMt!dsKl;ufFy_>DAv1Jtm$=WFzjn=|md4 zqSbz}$HrB`xfFD#nA-9z`26 zR6p~9q7ClG18u0U80W8FG7c)J5P11doqeS@C=^hUhDnd<=`GfKj^d+sNVw&p^D~s; zq)Qn@+yP~HC_@=GDa!CVGGQpgrVAAN30zsFIK~*6(!JvL|923ie+UClyXGq=IQp)8s6fbsUVj2xb%`;j z-Tf1V7L}j0zlUKYDV}i4PQB+qWbAf5-Hj94&hY3?{4EmgULq@aC1+@d8a%YxtSANI zGN4=kFAeBZ`0#MzxA_n?B1kj_L{9<8=ZWq@&{iM1M=)pXYL%14*8>dcf7H2ti#F`3 z=-bdM#x4J8?@DTqG`?21%(|~Z(cG5>WWY-wdqQ<7)VxG!u0G}H|2f+6nQmaIHh}J8 zj?|CvUQQn~gg1iM^2*l`3H>dEmt%pWn@ns_%r2buLZd|=H??HhY2*Cx)Y`gT$!DNf zn0m=391bWoDjM147r^{J$-IOuqJRke?^WCrZzL+cX2v3ca*~q}*4R0KICyJK7Ju$7uCmtKI z>W^h$Ms*kd2;OdJMbTwt!{UT4X-{t|8&>x*L7110ZQK(-t92s9i8?fMFYz>V?FXCK zVTPqfx3V#N^rz2IIjJJ){ul59eST0LCO6x{EjQ*2!;y|#Cq*V24$sk^z0Ma(Ho^Zw zgNDV2hV6!A#_Q`5t9#*6I_P8f8-ZpfxWafm$qml z>>bvx2`Mb@JL#R?6X`BJ_$O_(-vMBYIAw}9=;dbLMBFEm=cL7r!HHw=n>Hod7VOIM zAvg7zh4sbL8*ja8*bTxbIOnXGZ3-U|vm4|*g}|#+)JQTrcF{|+Xaq(`^?YUjJ=W`Tq`x#UVvbsM7P@0V$qJky}Yy0BYnFi zQ((bcF0+@VIY3hEy>zGV&QRoN{~pq4sESk@vlEX^p-B6iUc z>Vfh%oQ{cY$aUs&_QzXbg+@FKvB<(#v-f#m-WS;l$`m8;gLV6HB9SaWYEmviqsmWO zrj*A~6q>f=Na{3B;@nrMn<|;WR#tobT|Kz7cCm!Evi89ll>7Ad0|nusQ1$ZMzQ>%* zW4S#kr|HPzsk*h{M~vV0X~Dy_U%=ZY_%X(aooFY*+=7W3ia1xi5a>$B4VW|ub)`Gq zmxxz(WnQn`b*h`UAFqj+3r-U1K)NajjHLb!(VuYfwg?B5=06LfzO_e*WBA}`&zcLs zq2Q`J_`B?^R%AY&Dc#G6vSmC_lWv@Dker%$vfbO(yhaL&^1FI39K+3bXspNorW5k= z4PHcR`+eR|W(s~rcbhqTEG6RL`iA*b2F}E^=UxTq+h=IcJ@nO(BBh`k(?smV1T7qHUe%P}({y)?{?Nq)l3PYW=KhV!)Q3coV6rr$5e zY9S#d@Q>OS#V6NX-Yp$JVb5%OS1NVDD-GDDnx$e!oZj4 z7NXV8`l)5ZYyUOs?J|NLOFxt?l<2s1pju$BMBo~uZxG}G^sBuyWN_Syd$L9h4onqM zFR(NI7ByX9XwT-0nv9UTrxRyLUZY+*lCv~i5)Hf(e?!z&hNwvI!$t-|y4_wmT>M1@!fw9-#rUa#F({$(iZ&eK5>f57hnIj)HR5$7v{I# zoXhhxxxcGfX5T)qYKB;P_%=D4Ch9vx&G(I|mrPz@b$f)LP_sc#Hd7;%5p)gylT9|I zNq!tYC2GB4U_U~T@+ZbTCjDah&5t3_A1|B`H;rw_{!-pqz3QgQY?4?e-5^ICCtZBwQJe_r(rC*u5*(5VFjY%6&7}F&?`~IvOvKQqVTKUna-H>KEM1x!K z3Mhza zFw~B<%15&2;vj}~vOS{^Lq{?gPARzy4z@TQ%=B)W*9dlLtL{?+X&h6}FZhCNo%_}& zib;{v0v4}dtqN|@62DUg!6MlrGSJYKs4a||e=WH!QGbmdxVD%-dx(r?8=uq+-EBPJ zHtRiHW1b;qTP!+Uw64j)jj1~o%4EBhxK&4k`)e1r402j%_73TedS8_fquviQfDUU< zcjFip!$qy-0K2OT6J3-886d_>3`CEKRrF489t3n_)<>d`O}DwFMMqr{;}0-GNcl5# zraaVM6Zj;`AsYkDD5Nat;MJmkVvC8|Gjo$Ke<){&)e5C4_KeJ=nNyQUdTT~^Z19YS znhb4cJHcctbye$VS;Nzvp%BETHZRirxs*2=cvTQqRs{&_R8eeKeo`}fTdU_usiFJG zLkgv+NISRf<6R1yS-AaNSo&==19-~C#W8bkiDN9Qt-IKefUxVnm1Aw;=dN5aoH^jr zCw8j8U0-jz`G2L;?MHnV$v80dsPbY;J2$t=`}S2<_)zIpR^dT`ba3c`s#tJqt)Z7) z9IuF!eJdw^MWpPm-1z0XvJnkWzSh4m0BaFrl^6lYMTdb7DOgc}Lt%?=lwRhI7h*tw zo+%u>*1zD5SkSwGNT2Ps6?$1|{K`n#{G51Mq-=3+e1fV_>O(DgG*e$+b!WKMIR*hz z*}<#KSgLe}S@>2sxM#uOm|0m&`>8=OoI>~zHmO9|O^4HrS+|VIKrzd3DxNQ9Nr(l& zB@7=!ompk=iv{*g+&a0^zpx}~?XlXU-VQaS;RqGZD9goc0E42AV5NV-TUZM(Krsa> zRu)I$_rz3T+XC*)!8bM!F4=XA$ueviJ`?SjQf;#J3;Dn)0Rk&Z$r1m7PrJoxru*Z$ z7lNxlp&gyVGMCB0rtkEZpI}hJ#j3g zt^6GVgv9XzZRLI?N#K6J+x+0puBd(ct19aMWIs7h~CV^K95(&e5AId{x$o#Bth4<&g%FpZm;B5Hn#zg<~@? z-!qAeYRG>GRw%^pUj858f0F-)`F~VJICzDE&wLf0hZLu@X>e*XO8Acr^W9Hg50@}1 zME2ia->Ir1QmwYG5(|7p`E;G_y&>O=dg4L1br@14?Iz4rtk?8V4A#}wZLGBiO zK4!6(?bj0j$;PQnI%7<_^-}U>ShSejZPBP8O|d8fj>Hlr2XJ87%Uzsl#7HQn znt1OX+8@hnyY!`h|4!Yf6pdIplL?yrrqi5niq2(WFY;nw^{Z~ep^MVdOfLb&*Yi-q z=5fC^!=S%1u|DZmU#E64mbP8pzKFi3Z30&Q>$+9vnQtQCSL7NKWf*xN!FPnMlAc$2 z+hjkmR(D9pD{UV;vGY6-h)tOe$5#+a-&a=Qi!YR_rs#R`JLz%VZK{?JoerzIQn#}; zda;1;ru;l%pV00TMx%|IVze$BES#@uh7Da1Ezye{#J2^TJA@p^(D>9a(i(4jjhPQ_ z<@O$x`AcldgO*TRUh2s#5+pVaB4rTBR$HrEIo43&+FqdrBBbC^?2}h%nAZZlo8z*8av$SL$#c6Qp*bIK}m>N2hMelL@l>o)0jt*j!q?leBnrJ~&4 zgm49!>FHf4FU*J#x|&3Hz5;iz0=ek!oA$&<$x2mpFmX()&2QGA0;xMY^W}Hqp43>e zl#rY=+TQdH>24l^kQurxAEc%i9&W~E%zbB$HKXAe2NsW8&qY|ToY|R=hZNGd98c|# z8gnL51iQScp*809Ip$0Pjd$hazb^}!kfBGG=LxwXgk^@*U=t~%M<|X=N9~vTlbU(> zNe>`3>=Vuo@F#8M>*``A2NzSPxuBBEf#9GX8uKvi$<8!aYzt?}7CT37*Li?snd!;+ z%|)?DMFd4ygiX!)Ktqv8Yv(C@dCckMs|&WtSLKR;PO~Su!&>o?9ys9+lffyk9bu?o zog@fJ`7yJMojkGmHj(V!%vneAVf_jG$mkzGCGqauiO3*7jCnsmrpd~c z^GZnOc&`l2+8eXp#H!QTPDAc?dN~iwQBDbgLC;hN5SpIbPs)t7tLYqy#EswyHUEwi ztbvreKIv7GZ!W>8_x zG%ITTi8H{Qm4`>Lwep567bQa21TqYRwAxmClk@f>E$u69t>C4S1SA3ECW=^F#Y<(^^@7r3 zxX8ZW=Qp#vK|$Md-v8f^WM_W!yI-E?`8`+4Xu}rp7tp)7pj@tYJGi7owb~sp(}YTp zD@Jffgg`NR^Xr+*$tVPa@?;hX9@Y{ql$~h%{w8LTQSZ}H`^(S1kK^Fw+N0x8NWBIw z=z81}`?)MHtrcAt?NP*dYkai|q;dgR(^4x+$-JVvxRpy%6_=)YTiHH`BT#Q^Mah^M zb}zItNY%FJIhG5a*M>QE7k>sWv+}dz6I=!QIX)S_rKI{Z46%b*X=Sbk0 zPiDRp=f0!XYb^pYf9>R5aI(AuRo=$=DqrLE*(I&9i!Tqgoh76Lz9ll~)QIbDAs|#Q z52c1suWt6k4=)}k#=oE|4^UC78|_~$F_=Ni_LM=Y5~(yWD{7?;XPTmc)HxIT_qAamknkW#1L7acwc5JUXVv)RO>~&8EB#pV z%Ug=f)|L2UDVDdL>a7GCR^A>{Z#beUmAC&=Z)H|ZnY@|mZKzc<6ivxE?U&Pjxnb9o z6Ew7;6&>1{r{-}55-U;~-lfNp00em#u}i5y2FZOPkctF1Yl|KyC4%I}`wHQoKbmNd zc*jAOJs`{HCAT*TTk#9x%{V2p4CQ84 zM^H_6b7fHuolc4C6TTJZFbstXQ(q=kFbpr=)No#+-fkn%P3HwECJvQp34$DEPPE^& zg+uug3Z5B%E;ZK0O)F&JiLDqn%IK0Hr;UZ8MeiUdOgs3FinJi7KJ2jcZ5#W5oCxKW z#syt}_2snoy}te(AftBKN>U(QyI|A)EVgoLNNUDqE^<=!ux;8;-`FPuG3nx_T5!`w zg`2MSnD87D8wEEtG1=fIc69bI60A2pObA5hWD>pp5%uWoY>N3%>~;a3VOPJvO=u=^ zJpfheO_2b}1xdi8aLD0;IpEZVl@X+s3kQiTi1d}TEPLsz>b`&norJKfT%06>04H6} zTuJZ1oIQd$J=ybx7VJha=gSQnjo=3}uaP`w_J&8b_So#u<{t<+-1h8nsV0Y`+G&!L zTK&E`QsJoM@j@0+9iN)VQu!x!e^jh~!Nv;Ha)rdRDaz@Q#A{q74-1nnEZmg^v?<08 zAq-?Vl zuXlCoIg1#j{uBHsogdUy_>Con;)lGe;KEV~Qj+TkpDzFL;Nw0Cr!QZX%#Xv@%&WI2 z-Y(~!4bE-uD7yvhxz-1QN|wAT_9;&k_=Wul8W!wiTjetZfMk*%?DZmLe*<1~d4mwX z&$;+hxBO!Ae7<37;zg+={5P5wZHF4oLqYQzp@Zbmwt7rQqi^`muVC2ceeqpx)D5sKyzA9z|jI)rj>% zG?z=i2ZULN)CXuK+F|5)l-j$FYTL)Ey}TI$ZM_*CoiWxY&;^SpGuw4ij2A9W@sYR>nwNFybSc}I!R<5mnD_(H_1u|~_I z!LE3b5!}&O2cRnBt#Jr%GyM_PaZLY)Q(&IRGpkgV9$=W0;KKk7J7G2WCG+QdXNF5s zRU!pFPX3>hpBDS`E=AJ!O6)wmLv=>SO!vnxgL6V{RVAUerC!-qF*vK&MC>++C8u}{ zT(a9?Gi))sI)LXKm6rAXTLedSr2kC5g(}|;>|((PhWFX1Nmfg^Axn43B1GhJSXCm~ zml@U{{W1lKW7@1sQH@|xwZvXDHkTGi*)7jp%XzSJKS zCb?#R%z7?@13?@PF8(1~C}#aN>g-vV_3m+~&)0{Z)&LnCa<@3T{{^~#P}I8zEHuR` z#3e($S!zj^v)wFbVF2JG15y~UjqdlToPAWzDV9$L3UXvM{BqloGxM{k_V8a~-e=_~ zdDGIZMc-1Br5w#bCt(3DY(9Zm7Jrto|HiK#?eFe^*YCA$DFJ`V+Ls zR$H)uA6+XcjM?9lM{Q8m0$#_XZDcIxp?U==D8b|-na+qWGe--kK-vW-sMzrgFydA$@u=*37K6`AKF9irmZg!RK z*Ay>8r+*RR!><)u??;0>*~)>P^(Z&ghX<@re?h-!vtd2Wd)f$Wj98o9FME*O4T}*2 zM_W@<7_(lL%P!|rE^#Blf~^^=XYNngr)`no^IGB@=?*IE+M`35exk@vv`7C8T7H>O z`20Rv$gh<;uJzD>jp<8hT}kWfcfD(1|L!)g57-Z5`ztiha2HA0d=C<@YYUEO@hhF- z>7rKAF*XyYk^XvHKQtEDso0{m=^p8_V2Sg|N!s>c5BuMpwd|xZGiu)S0ek4UJ8#)(Q-#)3 zi1@pc3L25+scF&H{6Iz)f{WaHQ9=VcaawoL=13r2zw531jL?92hO;2Y&j{f4`ie?2 z%I2<;1wyd^|EKM&U|$OPDrCcQ(Ulkxd0eXYySmh>t$w^g`fB!2NTO)wuC>2a;s&Aj z7Vr(btqbJ>ITF`vBV_Ft9_=fL=ob}bygeqY+=#V7ZO|;fFihlnGk{4mTz>8h__;Io z@(<`T1Agud__-L~z|S4|n8VL?a})iQujTw39KTyyGD*4Gxe4r%8JRA8etvHOr?`}lBk_V2vx3p9`;KIs7Q@j3zm8)pz-q+W zlzerMS1!N-i5XC7*a;zb1p@}VqImK6GgE``y|!CseNNP#yC)Xx5r@AxV!x3iT0|H8(WgB)_n&wbqw-Q@1E#0W%EE-b4xv z)GLK$s(8sW^h-B4j)#|g9f-F-7vl{s5Bb!X={zgGWUhh$6*xTPv!(JJ4>@A~M3tl~ zbK%9#^i^H@q1MvMz-X=ymO?O*3s1mA)-Qogn`I&c{9$NkJHhj%C+@^*7QtZ}|B5HZ z>oAQU;6*Ww#g&r7H16H4BDz(ix+T|lV4WA&?ZP^y&nMs&3!_*#%K9aJoF3*_$5GhE z!Y;Ob$l;wy;<@s~eI1zVtAhCs&zNOXORo6FTI*Z9sE)tNgK(j&P1%kMJh+AHqs!HO zSxYRDlEa`>UFI(5Lin{==B^6OlV|Q;>U_;Ich7cS9pE_zFBd?UVXIiTMWn&J zmZC_EL@g5c)^gVfU{)Lx2KZql0@B$Co&vz2+M-fkgdbTYG0qIR9#*okBG$|K!_}uv zoh)u;x6@TFp+r0VE)R%3Q$H0G6?gzN{6FS5*D!AO%<=r@FSvp%7eI zhVyBX&n$ER2@u5rGr$dXl|9H+RzZfK8m{vFv78}5z9)b4x?F}Cchpkgtt!}j9zUCiFCM_$ntOtm1%&nYcCfA+}pInsU~b8Sog5j zaN~jwjbyD2%G$og!*xcn00y>|IE5rIeR>=SQQKGmoBFU~1(epCQzg4s`M+1e>(l3= z@nBB!LiDMc`mP1NIC1UM{=&^ty_MuzrPl5yPk}5M0~TF0mN4;jA!~Pce>GSZPdu7N zW!TPSxiFY1GhxGIcZ8b0HL$T$Pb&KMk&6A&Bn9UP%W)FtYi8s)dKUH7PlDxMn@4yA zN#POnS}Yo+qJ~cC-zl~B2-Ry|<{!uof$XyPH7c*DVrYtem-dZnx6lh&T2am!OIE4t zH%lQZ3edA1!_e5~idh60S!UQvgjST4pmVjK`JZUgfMUv{mO{A+WSU2vpOLCPR_Kn1I#aBeT}LK`4kE(b3Cg zQSK(6r$2RGNK4%0k2ai^DeAy|xv{bWV?U8V4q@2gNOTw0$VvHm6;E>O;z@`_!KL<>zkB`>*nLk6JNAL**D@Io z?1|z+9d@%k1~x1Dg!4L{Ye_XX`uisCUxTHO_NX83`o#Tz>IZjS1e{#pTWa_JQN2bi z-*Yjul$eA&CYUW~7W)bytlc_e!SxLf3#66q0=gT{Ry{h89=RNJrjQ^vudq2FnIxAr zN)ZlEXL|@bCFC)bP@pqn-M2way$vcNCAdXfWI_yBg`+mc%OJhrwG_yX+yxJsxQyP^ zD^%#R%UgJi1fY34KegtCPR;AJMPGDlZv2(QNU#03O25wrmwst2Hv)H^KD3JS451L6 z%_7U-^w{n0XE%T!@0RUd^vCqFGrkAvyj!?x1H|{h^dPwAO#he2!Nvb>3t$ ztnrGa&RdsyQ!I7f9#(IPrOun&%B}H=rOw-Y^`=orb)o(3QP%qZ8TeyGkpm)4;t5+i}s4sV+YSgs?ys*QqW33CYS7N{}Vhy2z5J z9K*ab$1v~AG0Z!24D-$$!@SdXX-9mCT-)+Y^3K#O)+szp%%PwS~7TfWA~6Z6rMt?4d)9z)mb+yz%LRgh~nuW?f@g&Y5Q|s&JZzd?kAl zoiixBUzaU?J-&#no>Ur=z$AhPuMz85l+!FQ!#Vd6n8B&dLNic5E8Kuys5ledea;c_ z+5>uB>fiquCr?nU28#VNA4n`ziD21EIM$vVrVZ=>%i_lFBjLZhST?EYZ3AQW43Eoa z=hbmLDHya$uxz`g3z~Hp?p$NdJ~<3qMM1B^vUpeUD(uR2aiA*7r@mm>ZmAx33J#Vn zpH(VYR2wANlFi&bI6H65h?DW=HJCEo_!V(ySdO)fgFtr}!6_BfW=@aT_bHs=pimS^oWTh)kSb%=#^h7)pxXS1 z!iTMyERGSBWf)fX<7^9X=i@H!+{+uda|b^k!=2qEfjbxQ^QpK~kf`8K|NmF~{a49IvA!R&NESG}%%ryX-(S1Y_( z$&?2*mw=n_a!}mgI+WO_HKLlj^e*{SZx-JRuc%ve`b{TEWz!x#WOTgeGjP{2ET1=e zuSld-=1fO6f5e^y-PoBu*$+JKk#o*%zXTH{nh+g;GW~J%CBe%-K8qC04l~#@>}U!~ zZD5P?VtNwT3>)Q&`pl;KovHdvhqh)@G_Wbhf2}uhl0N@fJsc+~I`2KLWhawB1wow- z7{OzWBZSLJO;^}H1OEMXYwlfn_vW)5sO@JR`*q#A8;QsKm%l9V{qPg}f` zcWbFVMeZivtr-=2&1mi%L>0&bCO^J_YU)ko7bx1AdLjR~k`PKausfbiT}oDF~ z#`u5O*Pzw$ginf(`AYl}p%qXtlgr?&cd_RX4rk*~+3`GJOVW<`lu$|B7>XY|kFjjM zaBVfF3v$CM6aFPEIi-!;STP({W#{X@g2(yy8~!cf-*x=En13I=<}29Bzn}7N2LE!G zie3+jtBJ0@c!d?=?gCmvA;)NaCq8g37ld}i03($(j@%2TacS%;YB1cU{tiFxHt~ga zNKW$brv!hikX&I>2p?v>7WKZmJc0lzu->>#ab=dG77uZbj{MeS4fqeIjjci*8{U^g zwowwZ-WE1GhYkW|y;#=~z!W-nu~4az;0Dxdk}>;FA&z1scuY%7XJe-as)lp$03Bfn zhtrwEmat4F#!&Mwrl$T_ZuVFFoNgAYBQ-4SZLbe>lMjeORyoO-VejQ4Z*?bL)f6*( zQ#~r(^?{A7^4t-s$!pYEn&629w`+-S0}Zq_qJOvPApX+V7vjJ`ya{!bP}SW2ZK9u* zk_aI2fiN2y`iahI%UBBC|3Kn3&D%*sd$mAk$01*|Zii6^sdZS3e@pQtG;+Z@J56-@ z9PU6o3gt<=U0UJ;I>96n;T>_G zhJ;&tY#3{em>bywOIHvfZY5-)P^df8@GX!ksY%%E4!u@Y<#yo?UQRr8G<73^14a;D zfVR+3%^mU0oB$K4t*;1ez%h^3dfLVzcR1o{?88f8`gC;|y4pD{ne-Wwb(}~2Ei}5? zQQd`R?eZc#&{{OISbfaCR;|w*Cu8h~=+S#P^`Y2cCA#3nY($p$mY>DKm?M|bs`Z=W z{8nwTISv)a!-E>OkQs^cMpPf)DoO8zAwYcc4M^yi31kEZexY_1iZBsEO((uW?I+q; zqq7?;Pp{#U=fAhV&NXazTb)K9PCU20ww2(c-rMT$tl+0@t8c1pCG3fhZL3gjTgg@B z#M`P_zT~%6Ln9&pcS|+g@^5daVQz~vFFx@od+nfx{;6*YNDUrs?5iLkcDc}?a{`En zL^)9a;&4%xyhW5H6&nWT2P~W%)XIW7MJEaSL<~Fa+bTBU5@9vN!oc$}6!?u%8w@ji z0cH!pGtnxDJp?sUl?-CuuGGts*$RMj^bA7wtbtL&ifE7agY(jn@&;CMafwF|uuT3A4?i?&lQulIhUf~~h2ec9bZHmHJ|yV{-uv==296EA(bk8m zTDEDe*HUQbA+YjWLEa|t2Ip{9#MeP!4Z`^3}#knwd>S|1Xsrd}V=Ed-Vsz2;c88ESnfZ0q|e>J}+33!l49Ww#}J zH`zD!%5FbIZSn6zx`Buz)=StgLeT5$3Kj?q5hvPrpP9g&djQMQ&5=4xcLr>Sh#aQ} zpPj#tFi@@g>`B0T0#MDdd!1nDOZ12fNx>+Lz5`@?a59-*|cGsnvO%8`E-i9-}a z6ATTj)|9AC!n_R$*-antTaD1Y(}(*m@1AJzN&*fw0t%zSNC{|zr}Xt5ulKjsdtd5E z4%5ML_lH4PHMgf-vV$5)|MUDPvoax6HR3S>jYFp|*{|Ky1#POVz9{h;V7 zfp@AFbd`AjlEw<(6ZLL`N#aJ!uDMO>yH{V*E%hyURog{y_(OAk7Y=mI*#$_8nUkmS z!P>R+Et=9Ee`^>Huy(z!gP0QU58L(DhkwEJrfBxH20jYWn+Q(8%%vIJv;-NkX9+PR zkQ6V`MUGs!L|1a+CAyC{-x9rupQ0stAAb5Q(fjfP{O>>*G+79TEL zwy1YEGr<)l_;ehcx<)1t^D$nvg#&3)x~eDIy-ru0Dx41OXF{Esd59XLf$l_)AHOR^ zhD`eZ-EIn}!R@N}I`q$98wqT}R;nKrF|%^I-JltFx8>IqEuG2J)Ji_%tR(aN zfNakb9W&(@R+kB*SAm^reTfH>>1kkqATE;QG&2w*g zx&7rYYpo)?#22cz_)9z(b;wI3l&m)K5XN{~OBso+8LdS`86nuLO9x28CaulO@7f}j z+O91V<}2Bkz9W-{tPDt|-Lsb$%C_y{S2{RJ&<$2bbzM<0he9$w8BMj)fvBT?Bvyt5 z1u{^^CKz4ObDOxt;s(kfUKLkGq;8_5Y)+`+-=wHHxx~0kq^h$9;8{g9O(@DlOyCX! z>$QVSmBwXUU&vtC3(JIrG>IB#Pq+;$>EwGK%H5+el&G5yYF#9VJyCZfUED&hkx4(| zt;Ai^3mVTg(5yDb)RfOgG&W(lF=oQF*_sjb#``4hy0M_qXLY5$iEhOLqT$AmTNJwU zkHd+?Wp)2V=%Tf@(WS><`SCTUMeU+*9_)j|m9uMZT8uSm*m{wG6!x9vdh=W37Il9U z1N@FdMPW>KiO;YFcHfp!-Tdu8s@uEM>IBQ{-t~6zu2FT%V~F=5Z{61_KrFT&fCNG z30W^k?77FH!53y;4Hx653=800ofV;k1#^=C0oxK5Zj>uRL0*C%h%m1^aU0CX$#a^H zL5uh%fTDk*UU2k`hG4_*W5j$qEf#=?fVI57o_N2?>CS$)yXx}$iI5bo->p$Ejrshs z1APkO)f-H3>>!BFeN7k9m* zThBO3RH)wT<`-htht`uSR}9k+P-dFY6g|84c|WqyFiV5T$7=EO0Z}5SY7-qo)WA;X zofjPpPS-%+)%ErtgZFC_SJh| zpbMu<&*(<3eQWcseK_I5c(e7OwSP{SddAQdDq(2DvO~M?2{p7~)ah2pbrXi1XmFh# zvRc&V^v_8YKVN?kUO_hpJ@q^OXpdTRmN_$Y?;P{^3BtK?c7jw@^bB`vk}KQ6K2Dti zH%HRCb8-QlRccO`Uj)Xms$vD|>V)MFiF>YdK9zg>+l^Y{enjNqGybf&vDVY0 zp2a&!^8G&wwfRWJ0@j`j2F|n{mE{*n7a#qDW5ItkIse^*j z)?9H^nkv#070c*M2P&%@eIo~@YWYaTNh)4dFkK)6Qqz}QpBM{-;x`iI{6mXWbkEXg z9q8Dj0HX-kjnOBf?kxqkfThi{sQDB17_&YXYkeuchoO#{S`aUR;Z+CE>&f*}e?jAZ z-mJ|;2C{ylQjEkeoG*?XsA&QYz$4A=1+ZmM5?dd$N?>#}USQO1%D2T;D4}|5`%n{e zdI0l+o+>SIzf;w`^%T;%=JIjFm|;1&1A9 z5Eba!a-8R6OMNeDPUM|njwT!{tY?}Nn=XA;!#@L<{OST@=`M6blkd6W#?jFeR`VXnz-w9ZPpNUo#}g~eP`0t!JGY{ z3gYjk`Z9W@yAKo+9^GZX7m2+kOZ#{^%Z39t6~aSB2w*Ru@s0JgZK&N zeQFEHT%p(=2YC?uX-pi)-_9-=^N8wFcG?sl(bPVWJ4;GiNn+2`*55Wq%{V|! zM`UMGw@Q~LUiIJ*e95@e@y7n_-WtDeIC)MFc{h`-R6JDfdM#|0F2er;v-u5%d^vKE zIPpB3Qx_H`93aLd0W8x5s!TtL4)qCeiLfQWusBUH>i*Xb$D}=47eOlm8|Q0RM!lO2 z^MCcQdE%7)u~aK!Yrb}`z_a|h$VezobxnQzRzZgm7UVA#{JKsU#) zjd{04;U*-m_i{|_%l;0MqaNIjbB6<6Lxr{Rt3xUjPl{Njn`372X30?5AH6y7xW1&I zvf87yiX(2&Mqy<&ijN{`!LfcaVxhCVMO%D_pfc`(mDQ+~O>&{D2Wp$C( zdXe+er?R?_)+*dC%Ji+Q?yI#PWs~vZudMcKt-{jcrC()rKdp6}^U}YvnhvdTUItWF z571gyI4{MO)y0kp9A!?atUe_^i-&=g)dS%-1|=_x#Mn2_j8|N8ROH(kY3AD;T8|AVI@o{G{V zcv33Z>2r93Mc(O6qmDLyZ~7F_Ies(-u*ebbZoF>9-_>zUhEu{oXW(z#ql6-7o*M>= zP+bIhl{A?ys*xuy@beg`u06pOYvCLo3lnKC^0CAbt!eOpEqa@{wda(DJ&!D$(+r39 zKN6cXYgZzTD188lOC(Wm`x+#~`oiWT8RlT#X?ojf9f!FSP4?&;QRI_PVYO$Q4=tAr zgTkIaNL#Qa{LTm6s+L`>57>6njm+-eZ`e2Bm2dpoDA60fh?%NuTlwgKDD3gH%OYz1Hf`Z51f1c( zc*x{Wdgcq8^UNu zme@~BV+z+S4b4an5b)sTr6n}utpU*Om`Ocar3{ZlGv0O+)|5sf-YZ3ye{6)$egPJj zP^G>E5CE_cvnzc`l>;o!lthqN+ErsOk+Ys(J&9s@}k&syDEx z>J2QadIO89-oT=&H?XM60*k6Fu&Bxci*^@S&|3#s6y$+LRTfw{!*hWJcdb0IXwL(S z_TIpvy*IFE&jE|}9I$B50gLt=uxQT#3!%asV9}lf7VSA;(Vhbq*vYZ#0xV#fxxgZ# zfCa-4V1Z{QtkpUMSnNR#1ck2$Ue<}}(|klhi&I@_v9x@~y90<%=TG+oVk|vZ-gJ-Y zLJck^%_o8y{kdu=sKLhk7}V$=_B?4iP~$pv@yJ7sQx(*>3aEiU7Ii0S8^ZR^LygBA zsBr|SAs-;Y9H_C~Iie@n^AStmAG5#iVbjar=N3E*Crkj2bpRr^ZB1ds2281a&(0Pz znB%v-H_FvqC2=e`3C@1^B9^#vf5TJhyZ&c&?1-;RSL$v38H}111$25L^b?Foh5=>j zp5leNf;+l`JLN)r3>V@9js%9hP>H~uD;3<)ug^lBUiW|&bNgYUPi%QMr?W^)O&dBGJl!2bc>G}HHJkd|&8T*MmkZjrZ z+ApYk%;7)-s>r5eFseMS*s^&^SP?TNR1J`4&r$uRAZ^O5NL7 z+EtA>2z?CsV>WC^-AFxAp?`$07Bo z?}#@9zW6J3=$#JdrC+5Ez4L#Zm;RMHFjXXTWE)VaL+`XXFCgw>+{P>ceCemezsh=_}!bvXJZs&ffdNDc2kr@Ra=eh#?{#r4u@JjfWemN6h@ih9#`@V7Ai zEiCTSH}a^Zzs}!*X;c6@PDx+I-{Q2iF#vyx&@|~P{`M0WGk}TF{Oy~@ZoZ>WdN_ZJ z(&zBkmmV6muG))VfyUE__lol`f2AkxSAGaK$M=Ic16!C?b9{SxpjF*&!N&J$OaDf9 z1J`Y^*1JGS6QD%+4jF14rAt(hT8_|0Hko+l>j8&p$7G~GpP!SO3^V| zMv+V%N1$~i-63KUn>>IcZU{n+KgM3*YCIk!+~LbqFJNq*>TdRu9IbREnK0ihMnKY! z@|l(;ilSGv(8=q_RCim~bzAEpgo4#Ow52xy0)*_~E|=wvi9{6VO5-{D`D1@Vc~+i} zwURTB%5Gglcl{V&1HsbS=^^Vs33>(p@6J8eF}K(C<|Rhmx5?NQse75rkgpmE`WHh> zioG~62h1kk_GoQ#j;c|tst#8c7sLmIE3YqrkBl;hNSOf~mBoE=7g~9J-%R72e7?Ra zUt`@T@=WjgU*xcxmw21yAehLXP78Lr(fdXea zC)j}kgPa#RDyU>RFA5|KPJC3T-SYusa$!U2b)Jpj_@uVD(#hulg!7yi2Oym4yf^?s z=w(iy0}$SJUL1h%qVwVagpJON0}%e`yf^@1h4Uf+!SNhQZ3-yd&4U68ckrNq0vA#T zC^$X*fhq}9h@VRi1rf&Zpdi9UJU9@c(uD{*GTZTcf?MzI!x1&_+z_%Fx>Nr|HG)bD z)2|Ak_$!ZEdN+Rurg!l7l=No)7N0n{`OC={vyZ&mPunFD ztOy(e4I5zc9(@B`wvmu9OnJj80y{Wserems!$9Zmqdl?B1sfqd{1I0lk!>{%MqmzJ zcF33<+~DpLwzw&YUU7dpt_(Uuho01EEamL39_#6%9IguSf?wU&LP7}gDn zW!kn-xEiYja!P=L)}MI`V70EM`PPGTeWMPh{Z@E*aKCoN{zP3js+7fFODY_-~Hyywx~ICk9pS)^DcCUC+v-ycP;1N{e~45@zhHGt%w&T?S1eG?aMBC z7eUg&`NrCVsAwWSQf8}B^Gj@Ef8c4YMR4`XzVUaA`(dzj)JL@MY}8K2wB4f((o6VP z&cBglt}`h;vxGX5Wiu;r8e}}CzvrSc~SaNLO;6LMdsNO=mome&{AN;AeAblbH zIT58KzsnmRlfgF;ULC{8^|C>Tv5@?nDh`{pXb%#sm1yH7YIYE2VZv%TXZ!;3x0tuC z%?zITSLUpyJ6Q8f(+!dpfeF&DJx(A$t7awFJI`-vif+}cH9WVjbU03*Clff%+RE=r z&#eoXpVfvviK-{BO#2LLGKt;PYfe~8)$@Moq*)WzS{>d^1Ga+UPRrF`PNr9#K58Mi z5uCiT@h^!dgxp6f{17wgStWZagdu|L$oj~aIZ8On7qQfSr5dx6W@-$&C~G% zR?Pw!ib#Be&&>P|eP&5f*MFQ{D2mH>Yb7471oe(V1zL%$t5L%1NPHHQ^IpaKNZu#$ zUd8)#-Y4-sBjW8QX*#A`;?zKKR3D9cCa~SMBu&`@cikVjYdJcU)>7wGp||p_8{9y^ zY;U|VV^wi0cI`8(BG&6!Sw$Y>e@q5!&&@D}04Z&8HyyXH?AvkJYy0{kHWZOZ?^VqBE*Zj|upnZdu?s4H z+7o*VGu>IJCUb*F7MxX!fxt*EIjDb0P{oxrO{d#spR9d^E{5zY=z-c&gRk3wWSXU~ zV)z3I?5(Cnh96JNDV`VaTc4QYpC3mdt-yeH57Huj!B``HkSBa_u*2rhDylbw>EPo+ zNJImesx3T9GLC*5&)}Nr69@i{r_>`JhiRs^#NX%@Gk46;!t3!(AMg7ZE;b6%D4(TI zdki~&4BZEh!gx=0#hD93G~n{npzI(@dYcd0w^gLjf!iykt)f4zbAflbFOY7&cLzNT ziibW{1yYI3;Fq?!WvxA}h!}@RR%+qPW7#jv$U|@ln1OrDsXv$TVhO-HG8nwKn>Rfy z0-9(9c^X>Vp)qGS!n6^tancjtFB=1gIGb=qhQn&>8RZYJL9E6SJ={v~04*L2KZw!uO*~ zxt3?5TzDI=R65q%k|7`k4bp|n-5!hlwu3%;KBbS{bWm$4rZPODOpr|&|Ft2@B{*2> z*IM4=Nfr)5>4E}fkC|FV5?$(}wLGgn9>k|pW^g>aGAIjXVTPVfqiX~oR>0k$n8u3GY_=ai6gZMyJz^T# zsF^5m^>Q{bO1m;j@v{&@qZBRJ!L7H;e(FvJe*j+n7Vt!>c_dpRWUYU~FKdGKxLo0Qx&T@kqjE0zDPwle0WL$RfxMb&jGO+ZLsCCoBfS)y& ziHecdx{!)TJv(OV;`mv?rXS8c)xwy`EFFjFZ6FWVpzz?%lhtKk!M$7UM=gBFn)>sI z^^Z&^L*dwl#@xj4Y9M+A*q}|-B(t{;!DnNU6@Jk4kYRD7CcC=-69Qg=XXzozG)}kv znl5?b64FFTAYG(DlbRX|7c=I2HoNmm;zLrSB;J`#6p?#53E#@DeXp~S+YhZTHR7yt za8s|@8>nF0*Rm->1jPD^;_59^h17FAmtY6CS2~+@T+`czJZk+lVt&mZF>fu2m@~^2 zl0)i0DkCZdsff5(w@{32Z@h}L&=`xMH6Z){Pn-!+V3;HjF&-3!Yp~f?XOH1=ocHPS zQl5MWQ$5VgGJ`i}$Lf~L&XGG6cWiR!hfzACYRwn8zM@KocAMA$Hder1Iv#I1vQmk! zF5ba;4Btq;5=S^!ZmufPDf06CD0tQSM=GV|Pd|8k4pLY~Vl`74wLqU-yR7Hs2R6-Z73Cq!=_Lbo9qh{Whn2bc;`7BuThm|(`3UhU>bCGU}8hni8ee}fD$+Kp%SOR4OPb$d7~>l zP2eF&7B$cPkQnT=_xYK`5s$Tk1->S0D|(Sv@$k5y_Ly02;VEh(sIpv8rO0*AeAy4- zDta>??umV_J$i1ZyU8v|T~9&0?-2X72c#)Wcvp7VO#X3*^^x-`etoIBk=O) zaUfz5vZy=h?>WpO%w2gHHjv}7jLt|IASQ;O*XnF8F7swn`6d@(l4#e zv4<3jOkp>vwRdk?^L1unfpo@&2j9qk&93~!>{jTt@@080JReP*?79;ls#l1? zXON7dg}*6U=c%zm3oB{@EeqxLFh=*y8-v=6-n^F!&w{2?2pOq2cgwYg)JR=-7`LR> zlqKc5d8JRcLQ5+2K+6&-iH=}b_L6`BNr)>#`N!hf7}z*qc7UaUOd~gs7xl#9!m!n2 z9cKAbKZJU!#RYK~%P|bNp$t#ccOJsvAzJrJ%z8c2@kXKLTT*NJ&Z#zi=NOhZWcu0? z$4azi&#-Wq49jb5#LH;%JP z+lUxNt$?f*q`RNJPv=ra9OI_yUSxBU8Q`Rn9hY6fo%7EjO4@|rj`^pIGfTO@d#lY6 zZRtzVds)p(*c|Okza?LFb3`ry|Ma~QN_}aco4wW?-9{-Lld!rM;IM{K#mhO@o>DP9 zX6>rBipvESia8?&;{yM5>o&W91fWUrFv!D!{b38k zmRG{T^&&*oqUf9Mz~tqNF=C3?#lM5};D$MXp7yJ@Nx4Hu8$ieCC(4yVZx>W0?yQ^@{gYun{@kKgb!wJ%WsP#0SoRAz)=O7GinvYWP zpqPD?vv^Y$9F3tGxZABX@PY3A5W5}BYI;0(4>Rhl5!|}%tLd1RVZt$yTX;tIB_E=@ zbb;XoHim+Gnr@BM?M}mf@><2q#e5b0KjO)?5u0ir4)9n^qAtkCmCD(6O^N#U*1WWi zncv-Ki2Gb;vu+ePvL(5a>eHvees97Ln^$&$)M$=vvyP>s(zjkky11xOBrZixB@%iQ zMqsKXDKWb3Q#uy5j)kokLV*|LaL&_(I^n2_=HdrYdqf*bO4P}QFzUAJR-@?)TSLvT zHRVqQbD<>^@bV#%o6*D#GTh}G`A zlJodUy$Yk(^jW$&+T>HnyuQun)?RHE!}D>zouv=aQ*?~jC=zEt6#crr-w>)s4Hc1-Ms|fI|j9Ggv+;HJN-72Q7UW2GwGQwkZF~m$Kuw(}#NBPHJo9)OXai0f^?eOK&)=B zAm(V@^CxeIW-jSnvubjPpm%BYZ6DD6R2EmEbyn(BTBa|m^=(bRrLjuYgUr)0&RgB{ zF3`+ERB&x1xN}}Q6x`UP$y%!oEs)mNh8kbsX@QL8E_A`a#V5h`ez^Utc2(Hg7vf43 zcrzS$R|F{bgEIft1)J#Y&ZP_Nmmh?(y?dpH6M=Suh)$OVhwF0W} znNoQ0Nv1qnFx{nAXpdv|fQJZ?WeaTAuh;YZcuI7&NxTY$Y;Gpgm;Y z=|NX!xfLzCPY-N2qxT^Le8F{+H1F>U&T^_DsJYg(9o3hFGkRtC7-ol-w>i`%3i1mi zQGEGY2Qtx?8HU|@o0_)$m=Q+ppUO)NyFu%|QRQ-8Abx|V-Th6Y?y%9Z55V9JS-!ql zl+LZzwa51lV@LPJdq8HK_UPENC)PDSIYVbBR+}Ln*m<)w*c!)bE60}4E+T(w7!^1= z$y~EmQ@N3N&qo9Ee^qU@489F$5UG1|)KJwhTVzLiywl=xX%T&8r^V%Ni=%1r`bTK7 zMp}GiMmX4&ZE$q225IVk!bM|D()4?UPMZ(=AZ0ZB6s9*ML_G$ST#r7l*bss>5!=em zs-_J3o0!?SCz$spAIYRGTg@DXN4>;sNe0~-TWF8-=+HTdX1*BKC|Cnl=^}9%nejq3 zoo#q`#_*HpeGc=BSr?{Dmf-i<6F)EJ-Okd5y(PV&H9GA`d62pClS6!ZAi zCX9vJJN6D4;7RwjJg3l5kLozn0vE!rLjQVVI~?(}mu|+quZY5S^g_TWt`F&lVc~6# z&cXft_T>)ucaMPL<_!Xodx7yR+ad}SgrgX$DErto!4P&h_t%j53w1HZHVu6i!%Bs% z4e-Ol$OS!^T3uw=zkl*K7bBeQ48uaWwR@U*x?#`qS@&Joet1LyUT6Lu0_O;x7NcJK zPb#xLdXafLL(-PLkA(K|2d|)ub}g5N%E+y+C_dCk)NBJKM@HanXA_>YDIT&~lZSws zw%yH7)JsqgEO&ea#Y*0LDUiO0>RRVAcqd=fZoQ=+`8>A+KE8iHkKT5S98Fb;)klmQ zMkarDdA48`1w&(gIec(YLE{DXBrnZW@C<&z|D-7><|x9|`R`e+lErK-<8R1R`6)I@ zie0QCsZub+n_=la;<-{4h0pu!{C5niH7Z}s))7u&DV6Fhq6>XOfgaqFZPi+ZsUF6& zK_9MYB<2SFCwI``4jHu$Lzsd8XiT>M3z)~;!2NxT9NR$~WqzhEKkn87J{fA-+LPDk zN>{7W@-1w=E%P+YR5>B30~=Vz2oeH}vF%^VunkYRJYsDSs>~tCMm7%CiJXP;hs0dL z59GXbN&pZ$h`-7{R!`VbgqHA^2wtJYc7?1FYyX2-Qs zO^=@0z)dPQn#;{T5*{cTJaG5#pzS><#gmaeG6$yg|x^M~Xl&x#@pv+zPaI``pj zK7{ZRJx1-&#`8qB`>C5)Vi~YRA@fhNrL(&@;FSBf_VB@fYt#PyKeA&%WOe+eWm_{n zxpmH-*5h{VuX4qgs^YS1qxSFQOc5?9X8i;9psZT17I!bRft{WEG~ITF~0Q^gO* z+oKO2FtS@)e@gbY9^4(DVbrxA*QLEaNDD6%$F^i=B1>Xecq2iI-`<1zp3;CLZ-bldn8y{}&zXrXB zJH@j5o^mIE-4XGJZvIrjxbEoi0U}n)N#`CVIL<+3!aE2Do)%{23i;?FKtXu-lyc89 z>g47Ou7oBl1;=S6Ef+q?hSUbNs-Kdj7e1q2ZS}*~zdB#l4`1JQzN#O-9(BIT&j%Wx zi>dQ5@dNaMHprG2Fx8WM?4mOTRd|M)771*Pzn|E`Wyzkm+mEt>Lu@B!#_?lSP@>jh z-e3HTYooO*c>}4E^DW7V7*kJ9a8jNm#mRCh32=cEC*w)VSySp$<**-JqNG3BGjvEBs78jfQ&lIv&0#{ zbvF)6l7d%Zd{jdEqQtIyKd0McN22S-Y-vk3@i!{G0aVUzgsRakbf>sl1vYlUI;V@S;27wlx>{fk(F5;^f%O!#!DoKkubX3Z9Bsn`3z_3f(ABC5)#FAG zhd1@0;(D_>Bx$vh2CC(~R${JVY<&c;CZ$H;aKt)j`7|~z(ct?{XGidl zVBcM21l|JWJWlkaz(FhYMW5N%@E(z@AB4wD@HaBagoeMW9IHg=mmVFf^S~~IX!9}Q zs_~oErJ>;aknbKma)q?;j!4}Hh?4H+2tbG4X;698I*5kZ7xTToT!Qb~^9y6N@%Ip} zO=}oJXr|$efv=$kL&rV3alaAlXgWV)9iV+`!p}u%HN7$D1vOrRCI&u0uEOnQPyAi@ zgtRv?ig3(&AC-LH8Ez{wlJ{ip7)=Sm!0hYBMy${fC@L)Yq0PPqMYU=E+o}J4Z7EPLC`DEe#yDK*4 z|L+yMFh*<|RxBF$z_8wx3I6IQmn;%U#^3lCmuyl6OE%Fiz3P9sWapf0$s$B6HO%UY zbm@uK?L-!_a%sulR!(4#HUmFvMjZ^L>}kLC1&%phk@l+-{$kiJ9iw|s)A5eU($5>M zLR0`$Of*=I_}X)nPm;&3LO0>r`ERR( zt(T^UkfBt69AdBl{xhIRU2&xzd}(0lhr91HqV|K9$LtM6VV-6k$ z#2`lB1Nyt0>aUz=SVv@xgJi3!kzcN$0_=^zF##@}O_wrdp|4HM1D9(ja`*Khriccg zZ5m1(h6^HrXD8Y|z4v4Z5AeNDSU2JMv6p2N_=5O=+-e;?A;UEMt}4h>$K~TKzlMFe zR!soXk{>#*wUh8njdqW%sgC0B_hq<%Jpgm;DsUMMR)&*=|WIMXKbWsKOd#ek#qA(BOV?h_@ z@}|F&e}=Qs7z(4_ZS5Rq-S?D~a_Wy+|DoeBDmettu?tPL^GkmK2hSa%Zf$P70AKO( z^=^W+wZm;|2i=u$85t2{N+iY?#HECR7gy}O73-zx1qNzZQ)e6YGPxe1J4`)tK~MC9 z2>F@Z&zZ%(`r48E*?VXmm_$l6b(FcTL@BMd43Zo8 z-qi<^MO>YH-IrVqW6N<#V?VVa#bgaoI9h*_iGvXO)e4$Auu3?i&x{blO)U!Dl3N$5 zEC*0F78PW!xVw|rao1QU_@3|T#`PEp1u!hj$r))Us0W$8Oj^DgpczDmpEh_PI425SsmlJD8%7dBcNY>vhqhy%**WTO$n;@3sI?&Z_EW@ekY;NZp4v zIK^1DsQohqnZR?px`sr(FNVyi4@J!zy7cBCeXeTkr#F8jQ!tAFGq@Hv!wX5wXse$SwtlSeMCG*PF2$$#^3jZx&MMm9RBppl&_Q zwt;u0Efz}}c%39|r3$Nu-9PgQ>d&?`svUOeYH?WJ@`6*NaBw%dLq+I`b#c7gxz61kfNgAFX`pY3 zpJ$;W3Q@90Kv6}2H|)7L`i{Uo>WPS=_RH$7G!(yzXnU_AJDWAU&dpco?4;RTwvfSzBI{F{A zrmkT=m@u(*he=%pOGM@?LI@<8J8rEA>#&2}C?*0{xJ!Ssit(a1jXE2uLTk9LVI5kQrWsTd4DRJ5RoZtP#zh$Q10E z^@?OnWWMS+VhIP|i=S>y-KV3lU>!DNY3^TB_oX(g6${_2+fypO8nt5Y>2~a^5$_J{ zS`cJv3FXDzt}c%RJ7&g-rA#;iPqXzJ(rFdSE{wXFRQJWjTu+wun#SL=$LUswbrLehx8~{@+XwAoJJd#(T$m> z8iCDAe1q_MfVFWaDGl#ihjl2|z)@i{nc+0XXJ&XGE2Te0JyqVW%LFaV94h32APoS) zBVUrE7#=e!q{Vi~AynI4`P@fzw=MYrk`6X+m$gT?26!kwN4_sN+D%4WZr%UFC#O?=0a-MTF@r=1E0_ z>BJ=jCXM`+*fEV{F>p7W4BiucBjy?umt;l;CW%Qkgx z_UMU>H$IK;H3pNwNnr-$^f_OhU-1a>DaOzNb@kTo?6K&`3k z3@i2uV!@SpXt_wBCHh)G39AQ?YISq)0IJ%;w~^ht(9}IxkPDcMaWY@wkoi;JMrOfb z*DVasH|y3opW}-P2X|PN?Rq^V?pM!Y$GFh&4B7Q@(8kWF)pWD?G`4O6a(1HrSBT;q z@|sFLunRq&{vv{^4D=Axk*Cs1PPVYYD+8N@+vEKuLQi`*xS;_Fx`LV1_5v#QuL$g1 z&4zPe=cxTM{w(Z#XU+%(J152@X59&a=TMkDS>P#mPT2`%K&W*BJR{x>YW7<;4so&x z?2HOz6+oF=BfU0cZE=^W_yn+Xq=KDLdMs0Uat|_9P7}b=NQBq;BZ&=FJgft3cKP+p zMgfSC%+mq{b>Z$UUCyp%&K{H{jaqT^oA*TR|0CQE!@OaQI*r?%J0lJOnIX*%3Q53Z z>rj){4e!ArKu<(RdWY{{V0>42N$FR^7Y&L8*U$7XDbX*w(vvRyLq;-iOuC%p0{tSr zFkQGB5nYe=s5sGL;qaR|^&!Zxy?(vpb-%YG%HD7epo{oJ!(EO-9=s=FzBXXdq z7vI`{1;M{EzHTYl-(L`Tv30%HI!87J9#)r$lP!^CfosM81m=iZLKK)os5S?0xzri%T!fY05%b?%bndo(FOZLU=RY!Nh+Pf=_TLy@art@(SVzoRaj3YU|=dr2m zWkNG0uloX&mGcF^4!PtSlEYTGAmrT(F)c1BQJ-*VspJKG3*og&xN_E1)J9QmYWmQ; z;Rsu+I;8f?lj@ku`$Tt3$wrg+THX5$N#5;(kY!V45%EYorvl);K)CRS2-AlPyOZIl zy*1A{{v6b)56Pa9{gUo0Z;H&hVU57*=JjGES!@16t&5;&*+{@QzqWL>7{Uwf0^#4v zickHy)-qYvhxtBB4i?>6^ovs*k|EUb8emeLgb$!1ygPLpOL6ZY0DG@k8qSoy2bctFI zjNItlyI@r5Ar#rUs$H7p%LoYsW9C}!qu2Ty&k>5ro?C8(E7BpV5PO3L7-ynx$3wA@J;k~pkWZk|hWHqI6#0RwmDh6u{x<;k{K{m<@ zVS<`3e3t~PX*)hxaVyU%qk$VtzKKki1u_>s`G<>9$Z!JrQq>*0_ajp>?}AYOdDwb4 zWX4xXRiWTMEg{iwu}69@W{(}pZV(zdOZZwo?sMH8sUe9&V1WOkzfqT-wtu3?YjnhQ z=OQLLWoQu$QkOBP>e8|vDT3zdeAT!S83Rc>DF20S%-pdVvt6TT1 z*TbgoUhzr!1HnHuXjnK$@6yeog*4r8Zq(}Ej7_?bb1!6DidsJt3eagj{d;v&yW!?s z*SAn5z2BrR7Q0^4gU@OBdSo{(IRp5Ii`=>%1^Nu{`p`wC!y?4m1L$2eWms>Zx86xE zxF|GC0X>2bv~zQH0Uwu+eSVZ!ygfiZZwDaH7}Xj!j$b{)4{BAa9Qwr#8*wFx=65KtXb)c?pC1+o5`LJ=e0ImhuZmb#~{<7ky>B92}Y|eIi@H2pr~A1rUzaz~Re@Sl=JC{t{9ovW6pTb(E`s`~p>r7u&dARqMGPMA^J zbqMCfHql~Jf|=c}VCFAh^TLUM%OM|>Utc0=0sFEp?pSd7VAYZfr*rG9< zv`Mzi-~-%Q4P})Z@4t>d6r{vamE=--mDIA69FDPVo@?nC z>36G{C@Mi2#8821Kw@u*y}4rc90vSZI95TEhv8{0Up#|(1G%-F&jV0$K7o_tn*QOQ z&$XX-0|ajBG}47>M0D9%{nx6b0+LWqnf-qJOtgV;pn)Nln4x_%-^(pFuSfWw@fT=BYD%v9 z9FuI<5p3k6!db}LiI-lB|Pi@bq?#ZX_$fqXr zseALOJ^9rA`Bc9*HxC6oy7N$$Pc6x(4$r5S=Tj^5sU!2LMn1JFpE@m{Iw_xeOFnga zK6Oq$bw)n5EuXp|pL%~jb$LE@Wj=L9K6PzAb#*?qJD=K~Pu-JG-H}gC=2Q3PQ+x8M z`}3)OUw(dh%+7B>a=|7qizlD<@wZ=`P3Ep)V2B4)%n!!d}_O!`UKEI4&5I26QH7N@s50vWWLDWd}>cV zb$>q9UzDF_9<$S&Pc6x(4$r5S=Tj^5sUzJ~^M=Jv{7UNxU=F&!Xv%Ux7Q~kPz>&ir zxEI=PQ=}`@<#(WouS?p7lj&xbTk4DEssbC;Dn%0h2?W6}9DtoG4H4 z44?a~3`0LF!{^D6=qmq|J#(TOfDdBVxljcZ7e;;a;dbDFwzLE5t5MJ907xko)Bq6m z^O*o7m+OSbOuqix0K};h2y-$3lFM*10FujaG60gxa54ar%WyIPlFM*10FujaG60gx za54ar%WyIP;$~p2PXa)4HJl89ZJ3!mY-^W*PvtAbGowAvLeL+ygwXwizFWt)zbNt=A~%O}+)6kfJXek+`NUU<0sJHq`P>Hdy(f5ji6 zlpE{*R=K|+_t$WLqwen{_jii>JI(zSe=t(dboW;zHS&Io`+J-FJH!2Lbbm$4Bl+ez zzpV>+bst;uk8SzKrTIswx@=xyow&vB&p-Yo|F|Om_>27G%KYPR^N*|ZkB{UZg^B1k z@nrt7J^#2N|0w(mH}5m~#~t~{=kkwx{x4^50v=V7HT);(Gzk#60f|IGi4qkJDjG+L zK}|z9>Ber13W|z~qef=j7}5>6putXr=GvdmsH5}hjLi0qGp~N?EVAfGLXZa8!6k}H zT)Az#1Q!S{^#6D2-s+;(Cq?Y-2c_o!}F+dOaPrHb%3%PVLd^<3GtFj%8f!cIh3l^ z>UP6m?v8q-jY%P0Djc0|7t03n#X>thFA9pNNSr-A@KCl_)?@(2OXiVpbS(4%R>qfe zeIfcg;c@qL}=&tkps7g9bD|8?Yq+KtVz7JS< zWeJpFF?~DvVGLjOq&JK=@BH&KqI_nIXr@uPjKrC=xAhs!DgXS8Q~B&qOy56ZzJ=l% z`MyE4{Ms$1&qURIVLB!ED51MWFP*EBc7N4wZ&h1-Qikt4X8DOkp33^w?^KS^A7vJ@=iT9h~*Yh11^sE`iEoG|F>PWZ$L zL0rDVI0R$=81Q7blApq0&MJyDhD_k4N_)ju}AFUKur#a)#&Faf5C&j!Ut<(gNH0M8P zM(!5^Fqu}|r=xr5BXo)oa)9WV+jl_)Tp`u2GZuc5OsDaMUxYQfvG5&UnAdlmfkq_i z*Z!(E(C}}}$~Vy<7>bLTKvmmG#RdJ)GV&}Ms4T5M&yRdit%%DEJ%Ms+Im#a~AEdmH zHH1qs=rIOWhMp16m$CUzgfWEoZDw&nnM%A%@+`U}F?qgH^l<(np5M$X@8@zWcI6|u z>A_^TX*lCv8Hg{Hc_fxkqquiZF5=)L1p?;6Vwqo2t1wWzP^9}tbO8OqJ_K49SDJrd zqGQhQUUn&Xph#K_Z2J}>&0nxuX8xgW$#QhnXCmXCCA&q1=Mt|u2sKahGR*eZagA4O ze(8-jCe!UaVYSp%F1UKy>KgCO%0Ri!#WSd`=^rJDptnC?J|| znfp>hxNS1GKz=(}8~x@Lpa3V?G;mk!4zh4#Bo{&+ZnX6zLRos*c19 zPozrq$Y=$y-Rr0jnCkhy4h6sJo5=DI(Bm(R;*+!@{$L$XL@y4a8-qbesafQ4xghD< zEfKdwvbjR=!drMKZ%uv7f|~r}FhOx3Lvh8UBIO_T;C0%(C`JTjZnAY-Xn;K{f1 z{*An)X1;nQ^ygy%b6fQ~YXxZanr1oeKrzCYa{{qDLlVAfI@BYOu}E>fOdwBHNuYM^ z>`#&&K9Q$sxQF{w&*BN_%5{`4@*Yt_;_Q@$X8OCUx1}x?_7HlgM`zIMDj^=&kjC+` zhoS>vsy%GB z6}^@Vz_x=Y(}8m-H+C-eW0z*8i9dFMGfiSelJAIYzJcUpmgGyYyK+Lt#4ccx$QyIy zcPIxiM}E!j;H`N~=Exiz`)mpj>mzz?c78A{xf3Lrte0<-OBYW>sccR8qLw2{g!!xO zp8bjE-|z`?GBlQMG~2nx?!UItxTU?(nAL_IZ*;W9C=H5^<416N3h@wx{s@bAn1Dd9 z`FzP@n|ZBnj6I}YIhzD(U!VOZKsVJB7rSxqn+(b%$>>_w=yUBs`SIUSJmsohZ^R1o zboPC)9PB2kYSjht5)WSzjaw~tY%~em@FYVOgF;n=x^}%vi95TEmPrtcCqBfWmVS6u z3ZLvikmA4#0RYu23Up95pR&xh^QHAA>c!1!QTcYIUYLc&cO_t)q)C71J?R=Mf=*w)`3vCn!EES5YBe&DTns&{m}2 zD*yKP1JNG0vG8A%Fj`vqi&|i~DNwaJ+$eu83_wex;pa~X%hFwPv9gClpK(8I20sP- zLwdYP=1VepI8_NrUoLp&cbfBiiSs+f`Mt>bZE$`kJHJ7GZI%3Ng-pU9tL`r}7p0m$ z;oGIDL8q0pSQ;8WdPOtef23^cmKAmX%U3a5&h)tAf5~`4Zbr!Q$LgDCEPeb68TnAv zW*L>%S)AblTa$sR??Y8@7_F0em9?`$7`17_q0MlVfUfco7AU)nqw$3Ox2TJis>R%E zPAab6<247P^TsAkVCq$9iy13l^awH=u~e@0w7=I6i{d@lUZ1OgyDmY z8ec(R$0p1o+P;SsD}}Y64wW4S7q}loH@Mc)y>C)?DcX+c+{R#i8j8^wPNcojlI#|9 zoNO`M#kcwEHPv&5NVI9wYnG@zhF`XqPh(Am6mxbsoci@**bdxdgkMAV++!xOfblHz z(=G8mwA*^;C$79`<8To$G>9^dKX!ENmg3kgncnpP;Vbn?x{WFS6*Yn zT4Tanl5OtWL6flH@e9jA#6@_1gEzg?Zw`gu_L_zFfP?>n4Mq_tf6ld{#2Fv(@Es@y z*+GVziconTQk*(V-VuK_IZ?NU6i10#dW=fV%U7wTl96!Css7MPx&2ZeH0w(}Rl5=6 zJj;4U&Hqbu7tUgKfA6d;Y|2rX%vAMyl9@!5L?p zQtV=~#?CqVUef+@&m|5^FMAs9SWB%x!{CVjH+0p{c$j&N&2P!Tcmr-+hy1c?YxLXv zh`|Jd6za4tnXs(`2GR-J2}2V?n!@& zXO>2LO6Oj)yn=FKtCEClFj%SD;){_XR%*oF=L^T$Qp|=c{AhK-=(K$=6AmN%JE~S;{sEBMw`P}^ub}DsextAd_S9`v zSO<43er3C5u2+ek{;Sx5*+%Qw4(renu0u!I)Bw33molUE zH+;#~Tp%?w+3lJOq6s%O^RJzM9q!b5=9{U*#w8=h0bNCr9iQ}=*rYqW zweK4DY;yKmwl9PthmwXIYHTtwJNF%GgfI{Nw~SDHZYi#0jeCD819Ua^W`YMVYPSqk zzBhiWi@yYP9A94LpH( zaQ!to==aNroIvo2ca}=@WN#@OJJPU@<%qHKlE3ATU4UWhP%o>-4lhkX7(e)28-1?V zJg#q&e{&#dG69xEW%ib`M8Bi#I0$9GF?F#GDJ}vgMIg}10Boh9m6O&BsX#sP$P7EB z`MsjE*GDey)j)9r;w?oReuHv(_qNY`yU~?!aRzN;AQv)_3wsSD?c45itu>RbuWSUq zAf1w7WDHkfpIf`fxM!&|ilbx{Sto=iV5O+j5=1@E?3gT=zTe1|B{5lY&YyK?7^5NX zGvD)}D=myu5}Qn;WpeC0Oa zziJqmXG>Ozf)v+jb})-bzZV7qJ9$Y4tX!vId1M2=TLb155%w$q{7C~4uah;T5q;-U z0r5GNDw%0xtR9=?TjBO@D2e-5CF)Csv5gsvx5h4D8QTc+G|SZ%s~=){i$Oq6r^j4( z=uXS!Ll6f~4@ke_(hj*A@VrQI+&_(p_T{9GC|R5&u*p<#;I;jiS=Zv{)$C-oD{78l zzqHZ1y}u;1w#_?5!4X4n0YwP~!7iqNSSP5mDi}slvp>2&9hQqRFz^T6N*xTtqZ0t5 z@jM`t7H7|wXi!%W^Y6ww;{N%6H11!oXgTsp}d4I zAuBY|zOgG;q_>lCc@~wjI`! z_<>~TK4IvLmK!+O(yK*o0C{WXCybWw6k23B4$IUS4ef#l+lv+CW@p=*TtUDpoPKVy z+5v}jco3d5j74I~P2iWLoL4cd-JI}!F@{HMcPeAPuL34Q2Chy$M(M;--0I@c)topg zdi^kNnTE2hQYLo2;c2;RwBbv{e8W6@CXOx$_ld48;6-FU@z56m^JVNGX5xxVf-zQT ztYaIZ5%uXc4t|N2GRPA>H!s{DKeybPC4F=jo7SD;rz5h92H!S_2tlb5HB(b3soADS zX^n=GGfKbGX}LuEnNAcTerSYTn{4}}0F*yo$vIE1PnPhb7r(2sQK^JKg2TYPXsREQ z6sIhb6Ougr0!@+^7?-x$#KX~X5Wa2)`Hb4v!{f2BicH{TL@Y8QHgzOVr}FPS9M+u` zFcIdL))hyuui^sTcdEy%E9cu;F<*TwazetlR|X_?I)|I#P5rNB{brxVyFo0`z`yM8&FSEkZaVv5G6(;xO~9E zbObMZSCj}H%96m55(mtq5D;8fSs}~xNDT`xSMeUb+8MxeK4Kw{91R~UcB&8@qbETQ z|E^I^fs;Y{P|_M_IE8o~uK~#6xov=2)?(NkYhFC8M&YH{wP**DpV5(=y3fxvRQ`f zqCK}qM)7fit}B?0m}uy<_KymZ)0oe_k(7krWSJ%cA|-iKX{mk`3eR65+h=T0Dx3>%x_tU+v}XA1i=s6Zeu@K$g^xZWfOXQ1Q3_=57_pyty zxTVXAHC}U2_v&;9*X+D9SA|Aq+4M3)xU_j3-xQOUB^NDI$k4o|6*k7Y#hbn?Rh82b~whKn$pts z!?tCnX7#!Sa)fVNu!_IU&P=@^TdzdvcPxg0-7oxZ}sqszSN~YJ5yw_ar zV59deVbB@soNzj7oXaK7fjE{V6fS2Y_MyM|oqdRKFQioO2#P%;qPyMZcUOZGcEjHswxp&Wv1rT11A@{A9t{&Vq$^@cxwU*)rOf?I|HYx?8g!cgEC$W9AZ zZDdgkY~5$AKj(V_4dc>;$P#Pv@N0{HQUt39a#7M~5H4zD*DR zkj5GU+VGL6b@3O~Q_AqiIf>vMh6KAY#3e?2lx}OR8D1aRDrtu6 z`AP)in&Fel=Hg1?3?DcVQhiLf40C=x&UfoH$Jn#T<}r>63STUoblg2;j+oYBA-T~y zaqM^LKu z2wDs2vQx8kCm|WtNobfxR&VM^D#XOg9+#48)h^H(?Lk(%)Vr4+lC)AcINN%Bz)h65 zd4|1($89Otf42w&Fcgh&FFxSZW3eGG>&v!|4Ii^DDLOrH? zrOzSt)-4dN`1BT1f0K1JG7;?(D_oez0x<&%N5#Z&*X}M6{4fP^aqF(&*|Q8zqfJs~ z3OP1dX|@5CmOL3ghCL-hh2~gCO>*AL9Ma zsa#ya#@!1|=|EMX-2v&+)1;`*SZ7H;X&Ikr*M0## z%YV+_X>rqW@PN-+-%&#=XO=gl6J}icz3g}awKbV6hZE5C5udHc zkFbj^A9@o)uCzh? znn;L>S+XKE__yM-R+<}K^*hh9pHhc)yp!=H$w=!NwFj&krw7tnJCT~Lkxr`UlHlxx z_WPc-UShsWMW3h!OL{Pz8;T4W&eS-pK z@6=J(`@bNh%BQnZmjq2kR89zXR@4P{2=-Osq2jN$s8KD6cqWM^(9OWq-wwgf%E%!N z5Uew+hyprn$KLG=K46Vvl($9B0geCsg+0nwOB+ENWMh)ua9DY)xpJD6V7J z$7LR>_3s^u|zIrH9 zF2nrh=_nuxQJ#R%kV6*77=v$94R5>-+V$;{8}J5FCY3@z3!Zj~qv_CjoEFZrju_?= zLTglQe#jN z3;=L1Ed_49boSA=?aoTW?anrF61fBJIonxVZdR_&A4X|k7Al}|M`bP+u1jXydcXOr zJf3Cms#-+_a_T}Td9goUc%;8})$9qp%|2Ha1!&s6<5rpbBcX^uY(i%setsv3?=mX9 zcCqS>K_e6Gr)#_OtkF=T%9$FsjLVp|6kPHSuKpo`s#gMAEr0EsbMiO%&HGDL^;0Ux zpg!q=|FOD{V4=!?LYieOqs$N05-je9w@Nf9|$f(4=o= zGvrU|Qc^x9g~x<-ArqA{$>W6XqSrqm%g7TpSPG+o^tvU1-9<-JL4SJHvrqCh8W}wCE;GXCns1Z3Va!R zX!b0j*$>|o2IZfX-O{xMt7X(+PqGK+Iz_2L^DW=$>uiO!LeKto*$citeVf|5+O5L< z1Q2eEd=oGi359r0+UhZ0YG_DJa<(YH4K9Rc9H`$9zg)Bb&arY6VIW%n(y{to{EQxolC|kLmRUJ&)v#?oc*|TB{ zwe5d}1#bvqM%7BLC{bfuB&~wz12H>sYqDiqWL<#fi}%0ykdW-bp2h0}?Ww}%_l)L! z{f=yFZa=GXUjeRx*3v5h-xw=l54~uA2noXWfcb!$y`m}eKnA)>W9sypHHz;GqP~RQ zF;Zv(Q~BGI6=3pk7?;DvwO*Sab?reHBD1so?YWfLIiuOE(-X=-H5hjqrg&pM3+d{M4TVIJosB3T&F- zE-hfL(oz%n(6QcH_kt_>-L+2QZ6)L z(#@hC|gZ(47Qu1U3k#g6w*|oGq5ZSwb zr+^hLuz~Fb82{W)+Q9JD<9^M4G*ZunxRVum*RB4VJBp3y8j4)+H%pG2!2{mC2wkFL3#%tW&=l3=x((iPxUOr5lfrW`BYD-YjY}5 zw*jh>TXHH<9eM2@!AiYYY*4{jbcBEIouu-59*@`A6(M8JfcC8kVe_Q~2 zyGaVvj4uwK%HL8|Xqa6{Z4oh_6xwaKS_wr8W%!FuJ7 zqH)ciQdu1oih7z=Pnp2F^^Ms^oX^MPzxZUevm1gN8HqJ^2~qQK`g=yU#CtLlQTb%{ zl_`3$aDwrvUDa)D!(HU>w*CMpvzrZbuzV1?>(^)@OUiBdp`G8I7w)UNdo06&al?i1 ze_h5PVeow2Z0Hk2^GdeabM1DBsNHGDQ&i5Q4DK)HAB4VD=y7Jy$AJP~DSLH*Z=?*? zd}EQbvPP*Tq4REqpWA7SQ_CgU-U@vkFi6vNEy~4Is3t!wH1aDO%AHv#rCBH^^GGmp z)*#7xgPry6Y}Svm-8x&c#{E%$ITvenWBG?K^SV)ZrynC8>iuTJSjIc-3dZ{RO?khN z=?Ehmz~p=@vT3w3)P9#sGpN@o9#IiZgCBjaSg3P_xDCVUlc?Ro^P+xUjK+FwYA1Xt zm;TXv1?#fx*X1=Gi_HtH9XxJmi^DZOk6u@F{+2vEQ<;*fapoFjO6TA9nNx9yx zei@I8dCUy_S~~u$buDeO_kt5(KdcA%<18i*+mKRONW-#_X7HH$r`&VM;Q!pt`e`<6 zH&hN%q|$SEOvU`>>|(!pw%=S6G*9zaC4#6U-`kSUa71q(lgF*mNEZ3zA0@#YUqSdO zzgdh?;AsKTB#<+|zjn8A&tG{6n&VNM?w)gY@R*wgy`SBws$wWYG8}W%{OZDDjjq~q z3}2^pCy_x{D$&Is>?-Qy8WGyP1QO`Bo|dWH!|t>wsyhXWP@SlgM#g>JNRyGb1#vU@C$z_)>hs40F(o)6P}5M{G#f6h7d3CkeZkqR)Q|o_~MFy z3*qNxe-$TS=BMnA%#I%6_`lpJr_||{vpAyG^}2T#wx7Yc5FN;buWP?e7&rOlP{!Azw7E5ifPg(GbSsgE#75`ERfUY$R;@Y(#14LRJBE&sGn z#A@GQD~Zb1!TfM`kMJ#riWPt^CeW-0Q5}>c!csOLJr#8GV`f%;z{QFOfCQbnh9XSBMeO>(jD-AH%gV+uAX{U3g&S=LKc)|^9<3JGL}&9P>s|qC;zPG%_i%D zY@sQ3p`)^ewy{o7UJA)Nm7GN(&)zk-*-nRLk3QBeF)~|XNw!3s+k@n}Qo`IH-PJcd z2DeVF303Zsd8&EGXUomZmWxQaKC0ZBXjh+ceH1&e)GjhQTjVF%BC?((w}VG6(DRwf zoCLNJak(^rsK&Qcj^_z$6FwP4&&60Y#RXQP^V4~1ExgJGEV5DuRd3tNhxB?M9Zbzv zu|a%qu<{@+f~=@vmo@Nc4X@CKx66h%(1z#9!n-dEZ@IubSvlgxp`lv;=`ABQKAZi@ zZ1(>mduILL%!0Ypx)#TFMm|XOmZ=}o4sfTP!^BRr2+QHTv(S7OgjiPL!6gDdOi2R}4 zU%P(x5IIM(7eY_mp1Tt0$YRP8cMrF_a7CsIAtAV5i#oLyLT~Vfu#h2Psl?{!p7CEwX+oK95+1Y?YMr*7j0w7{jWK*3=!W-XCby z6t#3uMI^c2dK$J+DRVXXuQRzdei?x#E+0Vi1DSzx?}osf2|iG+FGlO!WV>Io z!T-vQg}sJ!WOL_{szkxqI15>B_(FvK*-mVbhIAy)WTnvCg5r;Q>2oRWXa?Bj9<@Cr zG^~{Fq9<@{unz%pzmo86S!K5vx^-{1+W<4HESIctrpq+blHuvwdx%cpx zJW`Ryywd7*L34~Jx)Iy^X{ABe-hesA@A@iGyWePeSq8rL-SCyl$9D*>;0^0n(3VUQ zk8#&(#;gl>2pnDA8Mo-LePBLM+z42{n&!Xp^Z1MYf%q%s+W4Bp7pJh%mk5@h^Xo;?#p@}Z% zP;-#K*Z0`fL@Ug1x+_l7yIPU#Y9aGYrK^{y-h;P|m2zDdoBD{-*4q*^UqOl%b_I^9 z*39uLWZ5|P7>eE@B=`iqY_MDW7arf?W2VKdIH4!3iMqwfSK(l+CipRjIi6=jD$hdd zlZEsTJ_>WZO>GDvJL?hItUFlXs9!3zcud7a+NbtEJL{3ztj}h%e#B$)3MN3%{26Oe zKBA_>OGNNFe3YNKGObq$3fUdXAy~ggMtA{3rFU|c@Z@0q5L1BCN zoZK%bI}P;O-;T-sHppiK^eTvvhp_%XeVu1<`<_nz3|lvHpMKcwJa|X)G;E!BU8xUmI;;!Fz;(2;QBul-^1;Z%!L2u#S`6-R{5V7>~TNIr4AUzxpca0#<_ZH z7v^T6L>g(iOJ%!xrDAZ-BLjCj_va9f(b51^n1n}wgrXF?{t<@&a~5C}i0{vFKq&Mn zDl%FIWI=qPK)g<_ESqJwL<|oUh~*B5UZiNWtfdO49Zx7AzdQtxX8=N`m2j2!r^{|7 z2cbG1$r7&Msr4f`f#hv~6JG^*I61q`SonL=dUgA<-rpC<_uM|!^!|Pg-w$Z8#QVvq z;XIW?4YD(Xnv=@d!gqfwjQFYK-jF2Emp^9U!CSc4mh6~NR?Go+T5=*ls#&JcMyiibUA|1i~2)Y4PoJ!U-$;E4rEVc_M zZ+B72`fisyL|^whz-2C8EvrURe}dsz+zP)6dP9pJM)S9@st?t-0557Dp_EFT(gO%Vs2`8XxSV|($k92D2;P;{eyBe2NBWGeyrW$pCR?U!acc@A+ z1?V_Lr8Fg{et5&A$FBeTaXm(>*cj16iEtINCdo`m#y$Lqt zo2>et#U0L@h$^D*x&Bj|XmoD#D)N$lpdjekKkj>@_4ju3zE{nAh!^AevlWKw7AG`@ zRQqTn5d~Md$2CW0X*5L|?U5pFx^7qGBBz0oK=i$Qq81%IN;wG2X&i2vydjr(n|>awT7?sdg4x%=B`?eCWJU^u zi}b~}EX{=_PjgQrL*eW?ZodnbP>Z zF6~vIsazw{08Pl*Rrn4(iuGeu5_(WFoz9j!PL~@lbD9PhNLy*DhTug&e`p{q&RIA^ zZ8(Lq2by;E%Ei}@mCTl_)#XkC$ahKbB&Lz4?os zeRno{SvLDNJ|bul16H=4YGsPBhxv!dCqDk?mP?_-@OL7Pk*nk@Y*=4pVXY&@;k%Bf z>WnzU=DX&?9rn6PZpd7yD*FPvqv7lPF&u})j^wAm$7@?fp=yOyfHcOuDdGR15|Bg?8aFC*rEFn zUEPqiT*&U-*-PO%jIvM?MD<*5hefVBnVN#f^ba0$elh<_gi_p5C@1GSTJL>C=Msh`h}kg92)Jivs95KXy%_EFD%9%pK*`m z3e>h4_uMC=WoHkfsYMCcH&ngWS#|J@a*X*=u;#_jOzlu_FL6=-2Fyii-M%Af&SPF+Tucw<1g-qu$^;2>k zX6JHeaw+EaC_ZNd?!r<3iSeLlk9F!>jDZN;6&1dAy{bbrk)1j|0G?CFlIhtobo4=X zzo|#i)(3HB-y!b4f9$+*tzF|unfAJuXKOs=;2Q7NH7Wx~k!vHn)f4h?8(38q*iBhr zF&?w$jns9jr=zo3J=v_UUrAPV-WYBJ7lGb#yTr-a5=OSf6dwP>dE++9+elSIvdwPm zPXL#5-dNHJLJxV~X!-pA<-E~bmkD(O(Yv!xcKfbXJ^oX+{VQpLGq$TQKWJ>rq$$F{ zEBjBuw88S_EPYSe!2X;CHaiP!1dm|aLt7IgZT`F6sd7 zB;t=L+pFpwvQo&k@P|JIDJ*|G>6+fhdelJK``8&*Wbu;ObH01s!A!~{i-*h>XIXvN z0oRoS?youEe#`gNGuD?h+gUy343}N{4mg|B2luywwUoREH9=Gf)c$2FH1|te!oxe2 zmrLcoEyW-h}$ zw-PVVj?79V4LjCuW2g1!*TAZ*M9CI=!SmYy%6bF1T>(%$bId0I+DV|loz`^%Kt7}< znm&v3^LZQ8qLydFDayccpJ^A7(pM;O_BmDb7eK^tfum9!)rdEqV(OWX+YS}D=g7I= zkb8eri}L-op5nP&)rsb(TS)o2m*|vc9u|C}4(!*+S$(|x8L1BJuk$GwKk8~0lwiC}seZ+e zdJi&5zG#2Rx4-<9?av=SYL|TZgZ*Va6igWu59G^d@*AY~+9q-riR z?Boh^SBsFJi!+gN>@Xf~t8M4DOvD|oP|U_=2$#JIn=#l=4p$;L0sWa%%!Uo9SclLO zE`i%u%bf58A>2Q`&`fon+U-pSq5JZUdqlA|d4mkbw{i||I)-GT;qE6F$91bu<%p6t z&!RjcOE_QdjZIRE9eEz1-Qc0G#b*UsXsj$$$aGs@iH6S(Utin z-#g&S1#n%yl+Hj_uriQcy&w}`xy^m-R!_g})nJp5h~tY9FmMzt2xL{yH!wbq%dg=w z3bQM16x%0APPTKd3YlwDlOzud)`fzwroK))Qvp=CLverRAUu+jr<{+u2wNpCBY}nf z{EEC$d3o(tKO9pUOSe?FiRVXLEaQZ^ASIw=5FsW}&B`1PrCpGd)3g&*(@wRUrW{P7 zQ9j*+B8Od8_sMDH$Guy*GtS|J6-YHBNi*R)3Q@&r!+2$laVsJ;57YY8(t2MkIjWQ zP+DRmudeV%k>?eqM}<3vY}!E(L%9%ZL|A1ZS=fS4rw)#|{fYhF(f)ohuDG$h=)V;o zY300n`U@GwG#TYquCcF0r80JE1ajy(w-%zzS`s0-_SUJ<%AL|)hBW=T{-(JigIy@t{WB+h07kbgv zW3SFKZRl;spQ`NUJ`3H3Qg$%7Hg8{tYingAU_!!UmTYFnM3I5VQl4OExAHiA3(w0J z9Y(Yfw8wrzdc46+cZy>}Dv=!&@^1+LYrj${~4RQ zIyUvy*whbWQ@@T)EsRYa5}PW4Kg#(x3ecmsQV+jlCQt=wV|gC8%}%R3+fMV77Tj*9 zHT)AIA>TC8ri;b|zccFDfJvLl^G&bWX|rCn^UWje&etW)*St}ZLW>f<``%Cq53ExO zk0yMNcdCRXuc(A46TYY3R0+>oDq&f|_u^YBp>2ywSex)|*r5`(oFa9HIupLP-&P4- zb<*gNmGFHkRudfeJu0Cm;rsqwm5{et!6;7nN_MJ*(toIga$+@gsf3C(Dq&Q@H~Kvi zVxh6I5Gvu*VxgI_(7fdplSzvU+Y^gFs{THy{>shT@~;`!SbVKYKnlyVrT+HtSHv3( z!5Ois-q_SBv8mU^riNn=x5)R0MH(G@_)qGuu-CDNSF69Ts=ptqzhCngiIH#2wnFLI zIPpuB@YU6mobUxdP;U*lskiALs<#;x>g}eF)Z46D^>*jS^48kS%j*KDRpb@BRN4bP zoyosM>*M^jRN4}r5aE&b6i-Q&_AF1URhlp>qKTepZQ}`jS)MlVS9Hn~t#Y{}_dN0?Ot;Ui4{ak*P%u|j=6f-OZP?Q(&eHr|^L>xG$2aUVX`A1( z_cf3Ct|$6Yk##P5sM-ry3;2@UV_43ZTch9r3-A)SqB%cbEfw&Tj6oQo%+k9AKt9Jjm(nY=`|IVbr3g1e~dZFZ(3${eVY=@ByV4VA>a z3OlFH_Es(|PVopG+-uf|HU=Y5y$wCf0SR730eGlF)EaN4Hy?Z`z3CH-r32%hCmK_!kiPQ!DD85GGKI{tH;r|=Q*9@t{MFabkI3F2; z^O0a}oB4|I>-M?B=_Y!Z(#=~jn^v1z^)_((iWr^a2T`v7{WWE$V|0YqDbsx#4|0;c z0n~;r;f$Lu8>qW3dgbDpC44T1><#i!QNk%h9KfVrq*8G%VBSQqh-1@M35_f5Tf(<<{S40Bq?2XuLhx0!n2giJ@s`md z28rVJV=A$sHd$q?7vS?mCc9rbq6wP5`~4@s`APvT~Wu26tHK6q03->QiG09UYp_THpL0k&E-xbMf!%m zF3o|Oc8*Yywkp)bH9M_;>_Ks^7`P2miSo2{6HhXeHd%k;(g$K=ktmFe^~f$z2&5@M zB0>|ueg!a$Osrb~g7+W3J(~G8hi}$YK8Wdd#&Mcn$snGbl}wuZ62^&YVg$`D8Nu+? z#7vUu?^!Mj0qd8vX#+XG*O->=gZIionUd0kR=cBnj?U?*wE=4myYxU^k6x*s&KA$C zRJZ9gz{mA-&R}1r(^BKf@kjL9?55*)h1yexk@$ad5(}7*i~^));~mspO7lSf8LC~f zFwD^)nJEn^v55|92xcdd10vOgdaLlYd?;Z;q`Dw(j(eB$A=@$A}Il-W^cYjWQRBz;#S@q@~yElht zdvmefn-_KE(i`}Xj|>OVLJr>i<|j5ygm07PgjopB<{rUp zPu*cG%}-%Y{|!k!VYFWc@~|&FmPSm|jlhd9-rj;$-|)Fawt;i?7o;Y&9g+Uxp0CkY zJMPTLN=l!LYi9gD5l>8DM*f(>Oe&GngA6eqxc(dhk7|8y5DRdGFj#vd(h0`v%B>Pb z#yPSYZReP?4@}7-;KPs@d4D2~CuJ`Xdj@sQC0t}Mc1%D#L2jgDAL(fhr_=8RcU@j{ zQqJCSe?GPi_pIg7Y+sJnXIdPZaaFG(?PQ2cO&>1-FwD1E3T=NDF1?*_?pkJ3Y})X4 zVs10dzx8wRKe_i!+YOfT;Ro%WYNzAo#jD35{zIKYkzjmrc)`o_C(Y^7Y^t!+RgB`9AUE+@*%% zF-~ca$uUODFL@H;#IpZbYqgwC;R^pPet4OZiY0!c$XPTA^x)~gu@x8WYYE?Q1n6nW ze(Ln}e@8xb(n%RX@N$z{@zBm^zWHh@Co=QS5kHg0JwM~GM~N?CcROv*qGR;33zQb& zi#^L=6@(w|vNIUD8N^c1V}8%76Y(l%&;j+Lw&>?|t8&=7dvqGBAq{__kJBgSNb>i< zl7*QzUKQD6I~u^xet>Xw54O)fnp4-7pSjT57hZO8f2Uw8^tM5r@xr5Dm`+0j@yUhQ zEk6Gc3>26v!ekTY!iSmL{oGAhPmt{R<9?f~twkZI85Vd;G@TzgF%Z85mqMsrzs<40 zHhMf+s2#HW2_|P4WnRG}25SCnCu&!%OBEIA_ zVV#dq*A_v93GDecidp#KaXVc(cwC>#emZzujYSWLP*gnkF6JRSjyCf;vtI^7kv`HQ zg3e?{($3<`$x=cVI@c$8t^kdln>>?W%{2|t?U1b)!#u=8$J}o-s7r)4P%t_Kck0+* z`-?Bm73GNP^o~SJ<)aj2z&TJ(tHAH3*I}*BgcnlG$jLl#3tnL@M4)8vz(&g+W=Q~N z^TNnrkhvyi`=0TdA9&4_y`N0P*C@Oc8wW%)(xxIv=iwVfI3c8SLEj8w)b6rEs7BUB zp$nX|7FxIeO3{wd+RT@gLO;Xm9er>dha+D9L z)fLK%|7Pn10m&-d%A|Ti>M=JFRn>Zo!wEz>NVq&{+xZ&NtZAppHj-NDH&YU(7{9zV z!|#ghRjpN|{3=U^P^{Uv+(wT1KOa3v_qm?&*`{JR=kP6ux|( zpZ)R&z68yUx#!cRMjwQ0J=TLCtIjRTz{xWGQ*;`RP|{_;)9@(eQGD~AI)$w)a}2ma zCo);1tNl3>Gs7*}{29EYb)>=Aq11!kW?SSuDyh+>S&bH~)3H8eqY+2z!?Istqaq z;&|s%M`^!KbWXD;0tYse0D@{py_x3>0{t5ZjLY=9*`rWcqu;rL%HnXOPL&1k$GLUq zJeA?q?L#7GZ>)_EkDre>?Xox11@_sV)5l7B$!YO_^ax8o2KSJ>fF6Mev@tv z9d{z-_Z(es?r>kG6P-Sv ztAY{9p~_)mr)h9bzh~}u2EZ9`zkZhiKav%b1?^+K(N*b>|6$xUzdcI{2I@rLXdN4w z#kEphR~~l>=2wZjPC3?l;}axo!T4;mdz9?0R2J6_vgRncfuhZS|Dc=N>5t;*1CI|f zk}v5-siXfQok<9@K^-T#MPTCPcm`E;sgL;TG#sAErW(FBe(~AXHkoHL7xWXCauSVqUxpur`F!3K>viAt5nwj-YW(q+HY z;7tiw(f?&O@X76*TSS@^(cg@vJ^g=Zg&Xc+&r;klJI;4BJAPHZO=E*KHha&kuQUXk z$|5yD9ih_>QKL(LJ4B81IP-5;6RA}XBz+Kw8^6=zeQ+P1)87sS@$l-l<-(RU*18Pu zJ~m>GK1a(MZp+5b(XF9VdS&UW)6`gqg#fO*dJ7@4g0CNwDmb(POOWDxF>07(Kfpf_XZp;^?^*;XSz4J}o?jzh{R1q?}~5G?SU9^TH>wNrQ;5 z^(b%v7mTON-q$I(-L>tZY-h^A^wyje`Mdgiw}N@9z=Q^Y7rB{~IR)Y2a+7pQ!(BxlQlJd39S5POH6qg zx|if^&+m?d7YT(_Imi=?-Y!@m1)s7DwkoL7{tr@_Q{|y>ojJR+u$W!SXBoJ@AFQcu z^Ikz;&5@jKg!M|@E~cBi@mAo-sebO^SZaP3{V1O^BurWP3c0X`Ewp~WP;;SS7wjhy z%s9!&xun0{K!ReV!~KKtxdo|&g3U;D?{kPWN1FGdP7?xhc7?iLQq)7AoqNerGgK5l zEq?KIYml^!HK|fuo6pnhJt-Q&z6b4QQUI3??Z|4^HCuZ89y znI{1VMTCY(s!9&r$4li8-D_8V1mcwf4tJpB)3d)lRE>TAbB!6kN8%L89kxV>h@-Het@&d|V$hn0ILAf?QN%N|m@p?Cu9x8I$7!nd zYX{;&J_qBi(j5D%wA-5Jd=_)*vn|Sng>ymXps0M;wQ;ksuW3ZP)nS@ubsAHblL4$ zu*v2FyvF2i(JdI`Ppkpq>10R|)qRyS)FgVSvKcWNSCZDvwo1zL5~hy)qx|s}^-T>v z`VB$erAov<%ljhIp~lvGnse;_<=9Kd0l#29Ia;BtcAxTUYRSrHi zLzWQZJ5sZJP)nWU!c0ET`o)>wriq?NC1Y6gZihS{47v`;^JcF+IDi+_<$`yB$w{6n z$BUqSkNF)66LrR~6LXmc52?!Rf}H#Gx@LaYN|uKb7N|=|UnU|h;!xfFSLp+i4#@fT<6VisS1HLCdvA}Qm zILmaWib(gNXb?X?U!C|ou1&7ZUh_RJW%_0WI*ye6w|eZH$T?+X$lQEE*LlfL_@k(v zUoVFWNDFreEMX8nNlMnUQB4P{a~D@zJwkU3EgCQ;^N1|Ew4hLmFjD&iwmQftTjfFn zv%&n*29uswtsyXYy0F(=Z{7K-2$rZPd%5F{&4gEeIpxW8FldXAl=%J$J)W7~iB!%% zGgX>N$hlj2-1Y{+u_#9Xq6gOD33{K~xi{QxzOzy~>&jd+e~ICst$2`SrC-u%oM@F? zVxvyzeTewKI@vj@R;chz1JaMW7z1c=3+v3JFC6&j)fbo>iE+&VtXUZOT4V^vlVg^K zlEci8(`l{vs`n9HWQXW9p+YJQR6&e;MRmF8utNu5GOGTo^P%6oZIlYyBW@+rWiAak zM|DOs9UP8oTHfU*%}m<9Gv?SYu;F~tKaMbv!nGhV%BkA zO_}3#yK-3B-I>|`1T6j&iKW} zD2mldIl)S;PIr(+Bp!)=#@abcre#LkkpdEG@X5TsGzZgk`~GjEu9A^1GW&qH)Chnc z|CvT^&$1D;0lv{I2Wk1*Jt&-}%WBVVG2;wdS&tjG0WbEr^Q^}G;ea0!aSs?egl#9{Yx12VCp~ zB=ke-8EdBk3V21 z6dg!ae6cEy?uJ}8UaD%Oun+O4Xg*5WPf^*mZr#Xc*vW7%!jrUwhOoD9(Z}29jm?{B z-SeI-B3)_`sS_~qsaxzR-$vwIXNT$u;JLje&iFH@UPqI~!|@Y`eyo z?>>ru&t>$Zs43drq?&RS^vbC7LPkBY5Q+QIp>@;-G_dp}} z*h{Q8L<136viFR&ucr`gj-M+Fen_R_i@L2qpHGS zvl7JLS$Z7XLRhnXYE+?G<1pJ((lSMw+gR1%4R)jZiP?D z-u|l51PdB&bn>^6U*#r`Vp!FnX|8onZjoww-=6Ud0x#}(lyV0J(kv^=3)0C!VjZOxg zSDxl*T2|&HE+a8yZV=3hf}Tw0&%SmO@WFazy}INEc2HNEY?on5mwoWDQyC=z{PpQd zQ}$n!%fJCZ3;?+KSNDL0+ye#{>=!+S*>_XKQ=QfIoliMyI+B0KJLnKV2i3q#bF zNyuJO-lx+PDX#g*K?d_^TK3NA8J#R*#klMma!gr%EAwcun!~28U$H?1|K@d(G0Nu5cngaM4dU<)G_Q;haAGz(ELdiyqH{%^A5xPwHHcx{yen zDNz*=;vgqui(YFbmGmlvft{#Qc4+WklO~(jcc=Pz)a5%Hk>aGihTrnx(EN%Jcw(9? z9^*_Cbrgr5FWk*s8M9W1*rv}44U!YMUQjaatlm?dUM{91)ICBso_hT@C2=798RLdJ z#l0*dGBoJ%0!JpXm11 z<%ru;`$Kpn16$}d=TAe4c&Io3#=>ZAp1L7>OqY(i#66>#@fz?W`X|EoW%YMeyqw)i zEW?34a#(zlOo6jBObnCe6H-Ibe-KB6n*NilBRxzZCd9eO33Q~IN>nh(_4b!2Tiz6r9Prz)G_9mSFJ;X@;X;ui>}2I$77j)Y~1ejpR?wyg|b5eip+7D_rdERDeh(SR%K zBBd1hq{~4KBvL2IUgO^9m~r;bHNy^jZ4HLxgnyi|T-JMvZP&$s*dM)1lx2dIGg5A2 zDL-B~Coe5M<&;8Uj(6LvSbV_GC%}anUV87Y=9BE@9DT}0@+|zl2X_M`jqw{kTs`6@ zLZp&v4=ZGzocKBOr1)jJ4eGcXD4`Wc=~iG*Cc=xjU{@C9%Aea(QbE5XB^@hL(%cw+ za`HM@S8$dL##DFW$*$xb!W^c{?$JZVy3)CVV-AMojA(9MqchtIU!L?DYogtTJskz{!ZQu;8XRn~ z21oHs-%TJ9R`{E-A&jgJnvpI(L{2b$tLfb+s_`oFj1PDy<(7`?>I$qIsE*2}>&kM3 zE~9iB-^c0aoYQ!*PUHJ<{hXtjY3cEd&R?4!IY%}XQG>48=?pW21(|et;!{VF{N;}9 z=%c*`5p^L@kdglrxQx!?r(H;0w9MNpZ*abgDsqh!83^R!*AYpDq?_> zvR9M#uuel{>WHBx>DK39gdDW&*0AKFr2^o2I#UjAHt0;|`qWX3(VtGr zPQUIX6u7x9t1P)o_e%J<$1B^U&C%7fvfNw7e21817xy-D761K}XJ1q6>1t=Njw;qBLl1_TdAwQ+`!KD}qD57bS+zJ4ZS11AS2A!+70QhO0 z>}ZknTUJc@^usWBE%`XT!R5re3NQqY^~TRPVu(siTwBF_pPH-ocE+x>Fj(G# z;caZfv(fiB9s4?Cp|6#(CrM9&nzLTdE}bHCPrQ+NkNkhcy$^g;)tUbv2ty*G6I3Kx zD?zD%sHCDLFIKsO0-)+=}N3_y>V)Zwkr`^^Lu}ubMH(Nu)F(xz4rC#cx%wne(E_X0wz3aAc_%sdJti6IsQiKT^gY|Dh=|;lN@$l+sdGkZPbFNvff= zK+wqNfJTDMO0>id|0qICG}X;TibNX7o|C$@q@a;#__@XYb+@o1T*I>-@g>_iTO)Nc z*BHP^DV98<=XacfDMcn_(lR=8)R+^8F}_zTwlp82G-ynLVV6Q-3}sJKQM;m(vq{Q9 z0(qH%@CxM|1j5V?ZaJvBgIkA!>bo!kL3K7z#Z#y7*!zm+zp?5l;Il$Up~^7G5Kj&c z$NT`OZ9Mk6s*#OUJb12gY@K9m|Mi4os0~WSls|bFnq;SUZPe^@RHV!v-_fY(ON&`pbn!Q&Xb#+$Lhc;&Z^K>+ zry4wD@nst?r`$4F)-*@fCo*$61CZf;)rNW^%RJhe4u{%eH#tbSqp?}Uy&`|V6~a`Sd+XAxKarb2+b09|R5^1`<<%t^yvxL$$S0amM^cVI zq7jE$NAqEwb4s)XvnQCEc67+)$vj-O!5b{pZs^lpu6yTy;Q==&}7{V!4Bg!Q^qMO$V+Ol)XLy zY=#k#tiSoi{(H;OIj=4utUI5mT25biSF`El?mX(jrDe7wb+0$J)g;mSCa8WlC-VlYUmjvW4f3oh;NHFBry0ONt~l>!ths3kENE z{d`fvi@`y#zQzaQr5r35EoeM>$bv>6aqIcWP>|7k1mft4@-*rEyG(rQUw()opLLpk zMXVt|C&?L_=07YPa=2bK2kXVdII~4HSLIbCo&U+^wY?FRYzIzH(N4pO#J1k4YDB&= z*p&6C%vN!kzwN@o8&_^qbTS{^#noMH(A~M}ZdRRlls4!Y>h9EpHydt4s37N9j)Y^t zBromZ)3^S`GI#smIP^xwI}Xz6`k^jMx%DDn_+?04Fz=UTe=1iswGLS}s*_$X1ZT{< zR5psrG0|2sRy7&XR`MhZ5|zc#*1wyw2SpMR$DPBXtvFz@ZBs&#NVlEfdM1qcaZAwZ zXr7m-x}$XYEU5$2LMmYEFd{4!5lYft&>~uB@t>+S=08#beCO&tH$MsO9AW$AZ~P~) zW#G^`!AdoEc(v8*2#s`lV+N;thB6YqxyV)i8+lbm!c( z_hO!BhsK91JhEZXKxk8rDyX|q$T>fxk&o1QBefRJ2x#RL!8!@fLEjHXOYi_J=n&C7 z$RBF@wm2@L-e@<^iAvrOHnRI5HUcb$&(3E9%v-iBY-IEC0UPNa%tpRHjE&f_%Kv&9 zyTz)lT3&}zR0BPANSqh;)|qc;@q2HP{C{1Q-&CB5jp)t5|IK-wC3B&WsQtt3*C!g^ zRFgobxY55FzGa)Dgibs_L^zAIPnL=4L}=8-TAoI%CBa? zPIov-5D)yA+#&slje9DJ0Lu)5>hdpAN-D2G{&?Dd<(m*3c9dpLs@F4Uu^)?5w5sBu zHOMkIO8C{z+)HTYJ(DdlfjWD#rRxV$M*lNGqoGp9pdAJSzP6Y&A}KVQq@GsMXAWzg9Vx8_de>Wf%m z?klwX)3FYUU_U=v&IqffJ^k;61=-7_Vxiq7dtBJprvR{~{cSir=Rf$Ypn=t@dlBzi zy}h{_i_R7F@eS9jPH7E#ZOQk#_-}=DfN`pW-&~dLhi}FpX?F(3Z+kkx*f1MbXg|38 zVuvV&bxMHEZ@w;1lojLO)GF7!9r>Nc0f-2QTs2hA&D(>5VjBzDQ3)q{!NbTt1e+_xs=uh)1MFVo$5DBmzFDMON}Yy>KSQR1gLBK`1neuKuHBg6Z2-XyV!aN2GezY%Zp2g)4lFU^5lZ8`z?9 z3iF6VCKG&i4z=;jLQd-*^#Src0t8?Ao7~!iXaSP~Yjd$W%SI{apT1w=x@;Kl<~reF z82*-5ID7#4-KOd2u$O$JpiqrSvzvw%%uG0BO|r`02hy0aumvR5QkN|JqY`rl;1CawNid`vk0U9p{-%42E?P@!zZ zvX6^2mM!3v?-ljAVb9NuI)8AQ{eh=~F^XHpx?EgZV`(xoA2<50B(e@$PM3fE24Puo zfqEqdG0Ac4+1;#Fs#~7cC8U`A#VJY$K||G_j|q$gs``_MB{6;PA*%i?2_XU=m`=Xz z51Ny60_&yLajd5d~H;xc0GtO_lb zPV{q*j^zu8TSZHNucu%MLt5DB>QAtJBMdouE!M0G{JmHR)E3@IxwaT24WC54cG;{q{a`@LG0u5zjz zNcx9spx%^W8!|z*ns_S)rxmuR@%$n9m9a3`|2u=>lYi+|o1vmUZi)O(7##>E$`!m4c&-np;D}=YJ=_-r| zo9T3~l!Cq44+mfO>F87#5&f*I`NatRxX*t^wyoV+*&Fo8fbOE{3~uQE(Avbk_v90h z)--j<+;Vcao7zA8I$Y(c#TyJEz`w~Q0~GelOz;NseXRA3rU+jWI=3q{;@mg6N9%Ug z*7bbk2|F*PxcHc|Ve{R`e9NRJqfEtL&PA4}ikWOw?@K@M}FJ(@(-5>z!$&y!9>-qkLxrc8L`dp%)GYjtaH|BoA zOGgivp)*RxUtr&o_xs*l5kYkIiQJfkZzE!GvJpuL%nIp1mDN(IXD&m~-8ZS8Lk$CXPMS~yFn|MS3HIrQ?sytbBo%mj_vY;jC z$zx{@m`l)rVYy)YHA#=3Cb8#Xx`V-jH@Y+&UgAKOIj5z{{xs z6f&!jLti|=RPg>P!m2=NHB-1ddgp~^b6D9zXkJhCT~H>kKhw(SoW^R!0ubw9q57Z{ z5c_KG`Y)~Bj@mXX{{DV~td+ml;O!oU$0Y$$&JIBl`j@z<;=00q(XViFE^D6mjjnEe zn_6x|R_YQF8AZeSIMhmY`b6sHVi5g8)0G_eLBoRd#bayJH6^v_#4$4Wta^u=6z)QO zDQ_XtY+!t3OMsf8L6+&crSZ(AWwQA!^m{oMne+`MD3!712Pr4o_t5uHT5@)Purywf zg6>_+!EtXYydpF9%y`vP?hHBzu4;biiqUb8+F2iqd!H?f7xu=hdY3KBp{5F72W;;3#*#OgNS7puQrcYu`ZO6rb z+F{Cla5HCzY;d^L%(p9-m)&$4MJ=W#ywQQ}55gA*f!CEI8I%l+9|=0C6w_a|ylfeD zk`YciXG>f!@Z)c?YvGoLl4J$A`GO(JZG+rRVH%*(1@nNB&`c@vvGYqEw+$RgfWXeX|RP2H@vN4%C%BXnh%|nPWA8Uv8sz?1B z-9x-Xznb~wGLCKTKgl_Q^eEX(>4{tVCw@pPL9@-u6i<>BBLsdpO*0AA6nW$%$AtH6 zLNyNF@fX4-kk&qgdjxfk35b@ACZ5b>su4DZ0G&U3Tv)PtGNd5sWypntE6Rj+?aQ6f zq=D(){JmhhV<>Ya1*ye-bny<$p_HQ};XouHyvaMHyWs1uE~Q=(Z!xFqtvtZgVv01; zrrVnNp8;C?`Kr{)zJkWfqNiOgv7cG5BOdsd1*p05_#2S1LIEyZbQW-hJ-GMgnz^2=3PiY9U@^(NJ0Dt{pO z|AZEQLtOEHPmARP=D2W|zSLmf_sG#>2J zVy+}Y1a0W|HTpfc&HK-1J?8+qM{+S9|8V{nGXKNdhx^T?qXz9a^Y{|(H^=J-V6=^B zyuKX%-|RI`S0&UUUWRH~JVd%*@&knX4we{Ek(N6sFB;6mf+Mjy5{zwy7HTWUs?Kn# zpX1eBqwA#BSx$;IkxdUaTNrG6DXQwwYakQbuWQn$6UvGeSakuXFKs^ zUhEFyJG7QFv7IFS7?;_Z#eo{TLmCLVm$CBVgtvgbL2dTddKdJI6YZ^2e27xkCCNkE zmQmvW8@si)+cIZV;w3jovy|YdHq!np+1^o|E7f}^Z9v-whrNx=7vDDF>a0yCua7BU zYk+}dV%KXYa4JJ`Bi}c{9XIGk84PxvKjn4FtSdLj-M4rn2*E71sn%<{eh^|N@T%I% zxzI7Y$d)fv%TJ)0Q;gKOi9@jDykR zLsgEPT6=gnP=OV~R3k&uE0H@ zkql&y(rrA7b}y=X$ZckIar0!cJh2su9_4nK|CSiO#f{uI*|gzRTRZ6U5W>0mh#2WW z4Tm`>Z-+k;eyWl=HCSSH_^rojjpf;s z#dXnfGn?q$-wZa|=PRxYY1)KJ-CCy*kUbHPVJi*$Y_LITw<|bHf zwe(4Rypr#1h(Ei`1SjfDz{th@d4^WrZ~bR4w_jKU^QsBlG0DzD~!NxK8l=uzAzuGJcQ^^r8_ zL6z-b`FEJ|>h?f3)gtDLExgPErCxt1H~yjJN}F%t=^lD{5LpYF33~BA?5JfFJk?GA z{fF)WOY(#G--vHq&~E;X`PKgKI7I*vCjaa|ANpBP6jVummoyjj;TDY?#bc0&b#R{_!AGwBMu>NgK3YkPz-|^yg_)KxXlU)=!NPjQ={&t~W~$~RiTV#83l6c)M%ze) zDnKP6-c5q#Gtt&Z=+^`z|G#pLs8z&-qB((_&FXcbgiH2{ak0&8Njv@L{}9k8rk`ZB z9$%=Y{u%X*=5ZI4cJl{q8m=M7+!(&{91njF80Ph(!Oao{FGS-|2abXlF9>irkUh>G zoqC8zp|H*V9j{Q*3D+cmC-;#kR)%sngOmJh$sCtjxo>n6Ct%K`#MR3E#nG>HWTRH9 znGj!0{mO{|iq(}GBx8%a;X}o13@O}dVD!)UpFAc+8rhjSeC!G_0UM3I=KqH5dwcCI zY?Q`;;u_6V_;SE!-%cKcllc$6KThI9aB^`-lOaxyImDyjWS4&X6GsN1~jQd}q4fD;nA_xLCar- zEpb-?czO=TH#XL_uciYAc9EY(!|hhK!*YtFgXbVYd9o(NMO1{}K zt9O5#qp87hp=Jxx=45sunS`+KEo3JibePRSacOdhbQ#S@{`%FB-|Tnd&~C_n7qSHM zngk9j;l^1}<`7v#AXaiyZADFm?6ht?RS6KofOzD(8XHuNjVjvqDHwa~E+32gTK=t* z4YNWDbUL<%LX3QD=HEu$K1)PY8M+Z;m7{R5I???_quP$YBes8eKPLcW#@71ZKTD!} zheY=-iSCLm2u1fUZ2W7W*RuwR@L#h&obxv9+b=ZFrQW+Z?=2ry=e*_ly6JHQc-)pl z1o&y;Oi1ElFwVi;NKo%QZ24PlTkG=gNy~>y6G4*=>!wHBI0XTP;*Y(YHYi_0<18)5 zv&>-)TY<_q8#S}ajeMP0aME5a2S(Pf-sp5thY!Q&YAeBQv{lS(R1xR4Wsy=Qp#UuQVwqRJ| zMbbe|%Jpn|0FTUPGwDo0f2{nH+ z)U1SKEJkZtv?)3LwOa4b32zord~>~X&yA;>HZZcLJQa|yMDEcmMlh>gKgh9+p%P+puYUrV7DFBu z;JYT6zSF~(ir!#_oAJ<$;}I@5aygnyNJaa6U1e--<0(Ul03WL3{~-XhWv#EJ?XIS2 z=3fT+_W&hsKSI=G9~x-Bg3dYgrC)O@kNg~{Vy*3cGj`kSynezh8h_1Jv_*RZBga9z z_#On$&g{dCclZ5=9Ix^6{o>`JxiR2gz#8t5mlKxbf67=9YC)(`F8F>9g+q2}R@z~Z za<~6oNI7qYeSVs$l83ZI>!2ax|AriYd*K&DWWq{nO60Re6{Z3*1&IDE@a<>b_ki6sveg}wn@TQMZqv;VM@Dki$}f};7$T*1q;YT zwV|v{t3)c82YOU|?Rivj;pVgnmLE0AMPQr`Q+kSf9 z1Q~UzSJ=Jm=cur?fUREt>L_x*=BPT*Q+KK9E5+#DRbYwkzuH z$x}Dm84O~@cixw}r$F6B{x-l1lz~qsiT3ifrK$x`+7a6qlj}{0QRqdYjD1>bt@Pe14tx+|0K* zfGr7XpXG$M7rbqpO`u$q+W0CM{lFb7s)$rc5Uj$zBd@D0hlNm0t#100O>Zf4gku=D z?|*jH%L><$d9FB4>**atv3uL#*_H>gy*a{(Z7RUFZT0rLXrhY*xu!AgrHb%cXA~6c zM7Bq+C)GZ4-nTGn!U-mDYo~KJ6(u+gFuh0X6`8yxGBQ&;-`|H>_nfU}S10ctC;n#KR`ioZ--+D#xTfKxlT14-)q;pfFQEx7=cU)zhgTZWWvl&vR@B7^sf#}#1cm19(0X~lw|TZXsdArdJ+D- z8-JmBPHxgf42$aA9DoxKUy#@KV<+*{s;wfPLrI81Jtnc5hPW5m^!b3e%nepf*~>1S3aBKF)SD_mbM!` z$qYBsv%5*f?IK^e3kXeGW#etRm$wXzZviM|q0ln%$!`u{=C;JOF6s~!0dij%K$2dN z%Nii2K#)}f+49vn9OAp%EsIoHP5X#4On&FW1VwIa8D%4>DaGbAHSWc6QpD4T6C|i} zQ1p%py~A_ws2=nV?G2@xE4}CNA@4zaAM&baUARQKdlf5Duc}&DyevrnnV`Vd!ab}~ zN;`s%qT#O}tJh0HW}JhLDLgQ8Q_s-xhJ#JEC4Qh64`-b3y2?omgK<-D3kXl1-XzQu{)aB zD{4?Mi}uJ*YfDE#y+uC{4*;ZvA$;>ULcSO=L$>%4iH{=dpMOwD z&y_SEoXTV|OcwhZ6i+by>U9lSUzjuKab0q}gyT?2oqiQX|fQMeZl@FRLJs%{-1YXg{bU{;HH z4w+}8%aCv0u_`y$=qI)iE2w2{NPfqUDa@jqj+gWDio&Mr`G^nbu-%gjtlF4D@{F6} zxR$)?$jxyn=&nWj{lNGaziyoOaF%kpQZEX#CmTzB=-wQ=>R$C!m|(9&evuK<7N|GY zT6w|{)aP02LGp&|sqMTJ;`(k&FtiwY$jTK-MIEoCim8nDZ`OG_iP!H7qMf2`Utv|& zRV`k#Y>X|W-d26jBwusLFzxFZpJNa(w!GnVFU6myR=!pkU45xt?dK$y1Xl?Uzgcou zv?R9Aj%!(PkK@}hK3h5rA=??a^a|O(v{cXGfem%(Gbol+#+}Rpyh+daoia&C8E8nY z+%Q617q2`fpH!#rqe2NwC{~>8JkVH67g%v;1S=%yqBZQ|ywu9gt_z4`mtXC=h`MuG zi`4;V-p-)2V=SuR^8m&Gc8R`fo+n$(XRk^&dyY30*ks+w7xpiKVn$AAB z>DBqBGXg63(bsZRFj!F!#%Ge}fY#qx$3q0GwrX|{DG=BmW9eqn#D~PHSP)r#>`a7w zB22Ls9WYt)aAwP-%aL3_7{1>lmIBJ7ZOYojwADZ$aMembn%d5HCIAw5xx2Ct_wWVB zT4(63@jsmlJzHy!uk6A1!LR;Gcn9VmcC*;Rnum#~UQA?k8hpOmI0iiT3D1%`SNaOz zA84FB2y+-vdIIh=DMS?=^stYwTv#x?>B6At+g}Z^YVU&b<3Xmh4%3abzTI>LlZ_U0 zic_111Q4&+SX1wFoGkltCN!*0%@)Vt{5JdfH!^GaPNO z?yrTbLo8H}kb0E;wBsFO^8Qnl5_CIcaBy%vi=a-%1bB*eV=y`$mH{9jyC?yTBu1JE#vK!Wd{ynhC~lhYU2sXU@GX$3mCrWYunl zXQ?eeHzi3pXsF|mTHo%I;-mUR-U}LUy}!{h_w&8h$vr}gZn{DzvT^Vv+g2U;t;VQ? zhR_J>M@^V&0Wv1G*87w79B485E;@lllG@rFaQz(6LHu=YkFpi96zFfiHRO{05a-gm z%z3BDR6KPg(I?PjJ^KIom4BZ?tpI(Wgx3Z|N^5)X$YUz!&l{c3}SF0EUC?k4m z!CL>h95?xky$l~7Od4y{TAHBziJjx;jqQ`Q35BqU{xNy%*&Z^XU-DRO#mfEB)`z(A zlJBAcw~06N>;Qd40U_!?IZLu#^EqtA%6mAfE`7e~GVHt!UlwMBW^1aSsU5?^Al<+8 z40>-{*&mpRCVwfw?643VFKOM*)Vsodi|N-4)%)%~xfWKe4eaQj;52uU5 zBRjCnGV0BBl`D4*R|rw~ZKci%fieC+!TA3%JjNM84Bz8-3}9r{&j5*r-OCz7R6%=k^B9xpGL>2l{*WDqi<(` zzW%Ta$*;eh+$XSBZ52)s_^~SDReP@K!vHeNAe}YCK{^FU`4^ewAf3VGAOB#Gp5J>h z`v#$-6{vmWQEqQM!e4QMvzjPEKu+Lj+j+Vg=)Hswm!Y6Nxp+Z7oXO&sGLaX)s~P!a zFe5#=8R-B$4{nR~7O*R5MzYr%BkBrfV|{AzpMu%w*KE+#*KG7@HrD%_UmO@{S=ozn zWoYX2mrXY`bsdBzIy5SK_KN|gMP)%5>s4D@9Gb!$3uMfk?NG!Q_acd#LZ)$kYVl6Z zc#)0hx50?^YXb<$Oe?%|TdV*wvqANCSSO;dc1TcF3?rbr~}U z&e|3mux!8ye(7Gv8j$%i3#Q0A{_x|PmIVscA z8FhC>S4Do!sfMt<2O(^4fUxypU$!jGAo$Ia+_JnnAB+L=B%5nBZf7;#?eI3PDa6~9 z)Z)G1?d+Wxa~b1U}w1#!acrqLKvkY7cP~3}@HiiSAAcA3wc^(sGYH^-m*lWPUJq)c+cwo~J zQ8T2)Lug0A1a37X?-4$rkbs0X7zw!zrAW_i5ZU;D{Cz+%Q{>T;p%N6|qvtR!s@W!c z1XG8fL3p z#;f+;gou9Ad&$gMpP+WRP92{*CSdyQT?-;->>s(05avqsicZ%0I9e9#`0JFZd^3(6aK?f~JVx@qO5!FE;qIkGkPU+x8$) z!xTDZZr>JrwIH4Bp;8i%S3AgufP9qoSVE6pk_^tKSF@w4+nQcgO66+#sl6=%yFy@} zDzMKG*b@YH472uD5Tw`p16M*Z=W^!~?qvVO#ScJZ_7x51gw#7HH6EFIXG+tDxW7dW zc5qRkizn>qX&(^#Tvt??E2VIv9y3VD$ zPzbv|ydT`R1 zdrZWCo_lO<{;^y0kCpIP?=px#k-4cjp1Pefx&(p~BXKV4!Nuo}<_&$!g#L`Xuq2te zy)2QsgN9{t^6v;6YI5=|`8KB{k-8nf>q&{sybAw2gW6pv-%!vc4KIuf?2<(0a%8TZ ze&wZRKs;481LSbaZupS9cdXc9)ZFDe{BiEyNOUTxu0cXmp6!~gGPK3NXh90kHO|-R z)kj}tv&2bdk+N=P3B~#W!w#E+{7(Fd%m7E>49U3Z@Tjna3cs^Fn5t|wKK%xU7|+bF z_d5`71DwsV5QK8DM&F=qPJ0kF$c@ z32TuhJ009A$YHS(A>5q|XeivLbH~9Q9Rjze2DmHy;z4jTGX`-8H&f%_W@>i$-$FM2 ze}MZtAIri0;4=>H9mC0w3@#lZ0}Sjc;kkw*YE<3tKxzl# zyHZGd?!RbDkh=PZ$;5G`5LqNmeItJ@N=AwQmgV7icJr5sS@_#)K4FltU(K37XST z<6h*O*N4E*nn|4YZfHY^6*m6|5a2p<#5xlQM65(gL9KpS7>m@zQ4o?>A-at-B?TU_ z#lFQ}i%#QTNvtzd&uWTohNCCgS5-{UG96Qzmo4*s1tN^MTrxFc)ld5H)6}cJ%a9B#1|8R)b)bR zCIW5rFBsODrM0qP>o$mAR#Lylr+F4q(r(j;s6U!V8u8_fL(e}{Qp%!hxyK**RboE@l z9xt+ZaX8QdiI9piWiM%Pq!YbjJ8GISySHSXj*A(=@l;@rk&i<{VsTR>x zMeyZbD5@>@G{GL%+ta`y^ZQczK%g3JT_~E88<7tp;z??rSE7z4O7cYJq8=|Ju=`WF z&p}tZTTc5(*uI(|`naAcbkB@-z0^(b6C`vX6;|4vQp|8soH0XBjsIHuzKcwx6c zx-KC0Q&svUE=SK8mn3)}Qm&#b5t{5yy?+;XAo+S;bUDL5QE*ilM7(<(eqkFA&_~Bz zr60HzucOFNdDvxw4s@d-?6HCyM)`Jn)*s&+!5rK-d7blTGP=(Ohh<6fllnt)bTi`Hgxq7ovbC?y?RFRED>&n)WJ#nR{%Z*%j( z=oMI?V_mA6=yAZn>ns5Jd6QYZTN%zsRn-iPNWSPeMqoiNQ~9x-b7gN8t&}P8nnWF9 zvPD2QbCXx#vJ{8u22DmPV-QxsOtMF_bwu!`pMLz@!;s3kJe=4Z&Ke8)ZkBJix*At# zJ+V^ha@^dK`1IXWBOuAPGrm7NY;I4zNb8U42GKZ4chNQ-Nbi0ALD0dfY@NurS^@=e z?^J8XIrsf<{@O`2sZisK`8nqORh!b(+RE?ism4p<-sjENNt&`Zwi{biMQz0=o14z4 z#Vu48&y2dHE;AX)VuTeQS3!v7x2VtouWK7kf5}1>K!24puxhIwR*y|T(d!$eovcQ3 zbS;0+4>9j=;Y)AGy%d2(FRkIF4b9Sb^}e%6OtYwj27k=lu#2zLMY8g`5-C2<_|MTb zGtX87filN!ppZXWMI|)@owZeu8!Y!kOPJU^+OrWic<+l}p*tn1mB(bgxPg(-tx!IF zM~v{!{k=mGUsv_iP3YbsUj1{*98zyS);hGFFb9wi`)cn?bXGg)4b}oa#+#%8eO?^; zB5!QJaNTlqb3xOohU>YRQ8;c+bGRl@L%1%w+2OkRI}~+G7A`JuV-xUAzaR(wet|?x z%WwSSkaiueo6si#16-?FwAI-)!?*Sb*)7ey^^?5tT6-Q#!A)oeb(wRY^uL}6`;iAX z=zgbvXYTf~QdjdDXoB~K6Cn*WKM`}7h^@6%21T!cik7g_fDA4-AAz1F&~CX&S~m0S zMyxDa^69&yB_CYFS8gv}&!6#k@rCtP#x-l4B@%0}%cWX$@XRAVXRXJrzMJv#OClTG@iMzG+y;&(@v=y z#Zooe(Io3CubsTqanT0ZbWs?v&AMp!*V07*`t5*zy@9^dZ{~IY`k?ugK_Q;n z2k3K#f&TZ$hk-uJARPqyDRv_V`UJjegUIv<;LM$rWd5kR6)#I@!y?nRDX6iO7R874aI4b>V-QcK8S`DV?HL62_ve4PJ*>rNG|w0yZYjDjO<{iGByhAKm1lb`S#-pebVb)F^2FPcP8o`-x*Er{|0mjIZyztL zRlM=fvdNyj_eu^MF&j>#$ORYp^`{c^b)Z6 zq4%5Fd+rkX0Xpk4WBdL6B&Q%&E+6Qu`e@U4YCQ*7=4b6Zr|p)wB7a5zMspGn9uwq^ z_?}}k=nOr#@HydCl}SetF)){TfT8j_X`P+^J+A+w>EE7g+Gb&cUzKIsOPWKe?rleP z>KLjcenghbp@(UiEy%@ImIdyD7vhz-lr_e@pK4Cx-j{?pA`hlhYUV(^a#~|CuY9lR z&FrzYnyZV8Yo~YC40I*7^c4F4@!^pL{5Ik@1D+nv&h~z)m(z)c{XgvF-h3zS;UrQF z$B~aD{%slJiKp+TbbfLvB9hqw2Ag4XF@%a2ji+uYKIsKV_Xr>d|jjS z(hl0$#qsHduD>ph`_0s_A!Dglm*)pvHZMs1ogysWJ$eGS%p_{+Pybyl-Gan;=7e4p zd1n5%ex{u9re|_=+FI8++TmGU18dxu3oEu&H#0byJDZn^;T#-|8qRM}Be330h#dw4 zKD^&DCm*cyR@nf^%NWZU?^l*aTQdMQ@I=+~O|N@dns83*U*g_9YK5+m@QyjwfAa69 zHeE9CYo)?g{dpPTu+aMjWZAHu6)cMtpv*rD#f{t3l}%D+hE;5}Pg4Jeo5$9u{IsO9 zoqil~nDyvPB}30aHok~`^mjOOFr`-LG);-XQ%(NkhZBA^*hHpmgEP6KCe{9J9|%ok z_lIt1XSa2}rollDFxE$}2pQ{~I`1i|VtDsuY`;?Pj&-iKSEFj;aOQ6Im-!cye~^ic zwD(eMA`-sV!XKesSaA`4#UiBZ@z?&EtZ#2S@=r1H&(feaS}BBGB(GM{V^lKg$W9{@ zGMg%6g#|7_%QZy-XbzexbI>ebK{JDw)L-3RN^OH1m~B)}{!=3goQ%J?^xf92Ui9jeJG zexjlA?asveabM8juRlX-Tja46DqVWT5@M40SW0ZwissZ>Gk^$^_v$K_m)nt7w_*k!;4th= zq-B!>>LkX>IYb-hD`);8;S^T>+)d%D!^hOl2!@X7`P`U#j&W0X?=k;pQyA`b|A?1;{h|N;943C|#ycY7 z_Tn5bD?MnuXRzel9QGZ}9R3(AJ|Z;xlkB~=j%o+Z;lEF_b#xB~+u`eoxzObC(c(VD z+EQ!R^Os{09D^%!GgB7M%({mhq$7tz`WfIFIx}C$L3$yOYH__sNuK{31{c&D=DglA zd3#`kk@MyU!iNPbV+DT8Qra%WJ32dAanEHYizO-$ixb#pXgn}}iS-f4Wf*a#&HlAl zTPVES?VrOcujOj%x(H##ZfPAcz^mqk($$1SY7%!|U}tCZ<=pCJ#j02B;dh$8MY3~U zRo^o0nJ+)c?8S=Cv&l1Mc0YFu;UFlP*lr?I-DT9dNd3&XK-{yV%PvZt`zEoZA4OiV z5HC8=!3b!?fv<0aaw`;EwUs*#u4cvmo_Oq)`E(rx@s+sOo|>6dB_%3cgBM{F1xe*-P*dL&5z5#kK5r z%J;t*$_SrL5r&wZAO8HG=A3A5Mpo2M9A11@_|s8;Goczi)_y80$SS?wI#rDgCK=h> zewtc@8 zE<>+(46T>=m4~9?)IKfTuy-nErQ;{o%a`)KT$u00<1*X+NHy*KpZz$;<)+02Myi8& zlxrv*mb!*g3pxmzs|o<%|7v8E>XP7K=%$bIo`vo`U(dZqIV+JDVJ;yLF}Q2o%lrLN zK>N6fM&v!B;q34~{}=38eK_dG>RW9T`InS-4li?xTZ8#fhv>2J2v`FV65E@u+_qB6n&8a=8vY9ghfVw{htC^nxed0 z&aMvEpQ<0;y%`GlSL75ZvDy1`mx!p5OA@cUpxGC1IEL^ z#cT@1S8^b_>7{1Kt4D;h=`4=V_%BshFoY&G`y=aYd%m+9@||ttGW$~r)i(dG=~MZp zAI&#?QcXY4D(F+})akagnw1>XC-M>X&u3K6!00&J?v@vAkuW1w;f$cOF3nYh$+_tB z_63&>Wk_*EUgvGk(YdM;h=rZ#Abc+m;bnOUxBqkyokRFw=BcqEX0+F7wS0KycE1B3 zJfR{Q^3x9(b_Vht7UnxF*N}f4u8wcJrUj$vhy$y5csDN$X61WaX76;^+3tH3Zh}Wl zWTwH+9>dODxWV)O_&p(Fj8t<8kq6~%mgLqv^sBtSnoAhZ9&+Q*z{Tm;>y@ zJYXC0fc+fKnOpo0DZfDFvpCM)kX$x?B!`e+{?HIIDc{-0@}1p7XCfEJF23ZNo|JDo zBj5BZYMLXLC!Ajxav6+}9J$QhJp?OPnG!PuB`y!Ro@CG*O{j1StOv?aY}hCP!`^*? zL1VkJDk^0nza4}CltAu`Feqy|K>dL+0VZ^k4Q2&XA#-~_q-^Abj zPy&!Qnd7he~>y(85>V6ZLufx%XOc>r5ksI0DmyM&WtHkind zjps>OjRG5qkm!TzQ!+-ii6qs&P8AK!J41jmE0N_jkOc=waHnA1{PBLxYG1}pl^EMt z(Bc?Ks>Ej%=fa5eJAMUFI;BZS*VR?Vvq5!Ix9y~ zH@L^v<{w*|f9xyZCc6rSwnDHf1o9l${7d=f4f*Cj=CXIbnJkd2ILx3rJ}|!I6DCMF zdzUlYRp&X3v;UVJ5--neFuZ&>|E_EE@46W_JPa?l6o+{E{vf=xxn91P@8!gNFMGgl zwp}Pm%*>(Wa`(jd^H2PVW&tLT<6)N0Ae2mT&F{}Q|5d*EH@NJ*Y%og72gd*Xs(*kI z(Mg`aRExi;(##7XwX}cVu=1z;>%O0V-8Hb_VOY7gD8!12$%ebhGS|x+`Cc0Gy=1t| zwuhW#j%)hoeABb@O>a@tOakdPq>xhAyf5E;biVn=x$OP8q(E;@MZ9w9Qfz%n4kA1A zDr#-Bm?uaIbLP@r{t3NqG4)|*2~57#gPlji)>Me1uYS)^REp(|S<`|l%!5!3Lmq~r zn$aPO?ioZl^Ib2;<$L)RG#8M;>s)F6i0Ocd2OxipinqzrJhmeIVcb zntbziE)7Lg7xL%4mggoR0tPJ}qm`ld-SrxQ7kRNJ)IjEt8f0M==d*L;MVt`={aJ%z z;-`uYOG+{Os)GU(XXFV1JuO6Nt!sK?zUim(P1nFAatOuHnvD8=qXPD5#|(n9iEO@6 zy&R8bY$BmRI51=9sM$vP)3p zvTpieiC=~hBMEOST3~{}1Pt#(0)FbMo``<_PP1_*N@y0J9z8_-0&R4dBn4hd9xWAQ zcv1X4Bb7f}H+iX|Alklaebh~E_P_IQ41t_fX!Y=#ML^9GD5Zy{$LS3&3c!i!T>==D ze#?6p@3*-?roQYsiOiM$ps?EiKr9Yi(+7psy56_=b?N!Vstdpiwm`Lw#S(6>T#tH_ z8Ff=#dR8KH!ZrdQ?ue(aE>2{|VvC($LbVe&e$j&>uJbQZNyV#Cg%pmn71czK9U8v} znzm*yTYd>meQTs*W5he4&7ATNz_#91&h&j|?ZC31SS=PZgg8Y(CCmd1#m`PK*kI^iXo%Ta`RF(K(W!5lVU zr1_)klj*_cji;Y%%tGRcpOyTP68kBH4+5epDtX03Ju2B--4u6F; z4FkVJ2o1i+H5;MgYDM$P;+fAeV2o&1?dQaJ)izZTEM+BEZHq@aZO9#k_hh{4CD5L_ zju)pt5>Jz(lD>%rF{eB`E}SKN$Tmw18Xp(a^hY;Mf4oo7U608ib-gSI*UOf0J-AL? zuVGlOHxVUMxW*5M@#uuhuxv8CAL~JoPKS+1_aHr=oZ-%ti+jg0%M@$Vz|2&Z>fkav zA%MxgIk4QN=b4QS;Qqq_moVVI)5TNt@Etv^PqpIRsr7v1d(*d|H@oyaS-UjUptpDb zRYU#G{oLj09bBrNZmA)4VxQH7?eKqV?FOG#XM3^8hQW#i@u==;ye95lTxtphb*PW` zZ#!O*Q)H6g-l4G9vhmRl`acqLaBgQbIlU%NMrsK6p-tvKv@@CyM7EEwgG_96{s7&ya+N zhLt@bo~kU!9;ROpOQb3aRHJ+3Pe-)zn-aF0Yg@N-KpI3mN#i><=)f`{z83buws5}n zv4`-aR8`oAJwK|A;{Q+rg{1O|ns8TYB|S>zcx%mOL|PoR+w>|lAOBzQ z8@h?!g1pjGQ?)bNDrHTFJ7#LSXFiweKWxP)uRB|ssacomkF1DfF8)FG@J!8SeJRXb zyuE7Ia*jTMkwrIlC8~C=sKB-WnVy`5)w&2Im%2i`-b>b(JkFXCu~G3@X8auBq$VA}SGWDMs9oW|x2U6xHT5rvNa90Ih>lC? z*?2ltpf`J|g$6)JV+}_^vBNxI-_s8?a693BG=9T=;~s@Fvcc3>{n@?}(OOo>SOO_($8hY^0Qm;7b|*rusJ+K>tjw8tfui>W!Z{TV=XXe6Injug_PpcC~f} z$>BfMtRZe&erf!McQr{~?W}q@Z*=t!^(Cugc-M0^u*3M7_gfMz%l$83DvwdL&Epp{ zG2K<%@^ZB0oe_45qR@^owH5c>OUL#Jki4m914}ax{Pz5yWUgUVJ07iBGt8WJ^SJO0z>6;j% z{j$2nB0fOz3)(KWH2Ygdu*s%wUFy=Z8vLK~Js{=T4eGT#&_$x-W-oumYFj$mbv1v*zv)s@4WBA1}{FAIFw#Yl?4VaO7R+ki5=3CYe88*Jb)HoQj27#5(C!|!L*sGWE^`I zdRCwD=O69{bt~;^h{jO7z})`c7+0r{C=)ajc)vmO7(Xi8{TeHvUqOqziX5^gN6#HW z-u)HFWQ%Lg>1aC9yJBqWz<`q*FaXcvoRnad9m7+uB+MAD7!aM?vMYBl$G+S99HTZB zDz*+#m0kTqHg2ua=lO+z(secMT;$Oa2kY?>F)Cy_rou`ry(~4$6%|m!pC%9n+3& zbY0e_rM48Rx8C;{?GT(5bJB3H3Y&tq=;~LrAzxA4+rj7QqYe41Lgdd2FQmuWbhL*T zsuiJmY1W^l{>-u&f~B%1M9lHb7rXdkG!3x+r{*|(ex94m!5BK|UBOFJNoo~NjqR&R zZ6D~B?IHSb)b)^hIcmP)lho=R&QF+Su#W0I#vUtzzG9*;ovFu+Ir{Q1$5GqcOYgPm zOL3ZtY)g7;iL?yY7*+^JkecO%kYex4{K{J&Ez_XvrHwK9q0iBu8Txaw{!GxH!-1p; zi^itsvZq*HLU!V#SlbG+rH@ARF^->}%^uEQm5yXM8tiC3u1gtT5BO z)FcUJuD1brQppJeHRfVxgqYA`YuxyBMhJYWESUeThuO1d@e(alN6=PGSOnv!q2^H< z6(lG|f`KAg^|$Ei-@fZCQTK61G4th$Fp|A(2{KK+S!)t2R0{zr|8S3R+8Hs6-vC9c1g z7~*AT$5RKcT}BXhr~fE=3D`Nx(w3j`ClW{&dO_HttF>vzgO@vj)DMM2ll`qYT?hk3 zHmgpOnl(Xi%*RIa6g*u(jHUR>Q_C*k+cFNHyci&!U3QiMafX06+W|oY^)85}5E=Y` z2!pFhVaW$QL~$6py~x*2L#CXGJ>2g`!D>3$yjcF{-g4cM;Z}e#k(qnmzmiwr1EO~nL$G^zG-DdhgJD1npYL{KTO8Zj$Q{+z{dxz=$!pM7T#uWHF znYGrA#(8E#N*$QG>?P$}#<3V%{$GXv6#gz9_8N_M$+G!L0fOuVJ@rSLA{6<_9!b{I zz4Ynbx2l6KIU`Ww%83H3cJdN!bXtuIrAG575;52md_?__ez+;O4|-!iy=g62KW z9Nz6G`b~9fp?hyj_BN1u>AyM@ejm0a%kaWL%F7(_?0v$U;-oT1{5`l{Y6$k<`cokB zWh;Ry%)VBNrP3-%X5yV~By;7muazpfpvO{~y8W&D-*fi&Qib0v+Y0kqwN)!}*g=fq z8$&Zq-C-+t8`dH(Obr+BL}Y*RMZHUk!R{{DBU}Z!Exl-hO8fgi3U<6Hyn;|`xefN! zcnb(Oo;#xEm(uHvlh>vf?_({)=3Rie-v?D`-O1wW@krIyrXpBo1F`NpGRljg?&`?3 zMLP-cT0Y`8HQvf%sDR3^&&Q|l^1pc%7=>P91etU~hrM67MY5kJ{EIvx#K(%FEH)-= zAPBw5ME<~iZbbb|_Pv44X3YOK03@p3TYie`XR&hMVk&T^lX zDP@v``61iW=KqxGA+p(0bx5ulR>?o?{PtYuo!Re(+k)!f6AWloXBvpdxnZ{{*M(n~ zHrMi)f+LW9^#Osa9KL1zmM2oz?3S^+M^j8pP&)_Fx&vG1K`)s;vbo_=r8tCL`yl|a{ ziuioR6iRp+irvH0@KYyDYwCz&t5a{YTK|l=Rj7p?KAME5<pka@ zhh9C!2E%9B*hQsKnZ^DXLmF_pNeIV-Qo4vvs4xnmJH5qEx(N zAmRDZsnzZ1s$F#)=e1tA#b(4DBX3pXz<<*_;QxVHrpLIQgQK0VLN!!~M}x_7U&jMf z3^YzLxy!;rT{$~6BTj8ppbMQ z8L}YI5*xw=bsmnA>f*{$PPZRqL`{e1){%Y6#zaOuTYY zxTSoKpd3;)ve$F3yXlykHtQx@QsfFe%rD7KC+(KrYPPM>3r5&hrHvDtvijwFtb+WBR^_QaSdZjH?rb2XN$V`{42 ziMGl>!I6e#lm>`ZJYmO6RAJin~_rXDB)Lb2OmkLx2de)y!RxGLmyPL$y)+Bq8?uj8S^~JqkwD1OLRljQELX?$Gw$yqDbQb**4y8^n@)gYq>meFbe_inC zg~jp8qMP{6f#D6}U=3ou%(4F&&gRlum7!XN6B=sn8ZDboqXh8r5L9RE-q|R&tfV#& z$-l^oAIVra8PR~7cXQ)w+~9J(|HvN@9Q8x*JHYOYLHoF>SkxSCy-XCR8g@@tELs|E z{Vni|(Jzs*P@VMHTg7T`8Rg)SmR^D46m30$E0uYvys$XBdOuHT5D4(~V|1|)JvMr$ z)vQY$7!$pdSP52!B8dOSCJHxhx&sL7?$$usCu2eY(EAw({~}*xf#hPMALPb=af9DG z{Jxjp!;o>Fo}dEVz0FVnU%nr)#reOni`PdQkN zQ%@gT^;wFbeKNZ$m;zT)K#Hn{Bm&%!_cg5VhqSV8Hmy{%{t}9-4uZfp^T241H zi7Y44@zCW2svrHLW@PtCZbrJ85&lK~#yr)Sbi*`sb7Q)3I24{w^t?Cln0dn11rnz5 zU*~Mpe)oeD!es)cRuVIsUbGwGy^DW{ev5j-Wnl{#h0#fL=epWoo9uD^|maCq~EGoH!BSxT|+=n@3KioP}fA; z85yU%e|Ix;-7RvZ*lZs!Wrx-sQ*e?1Kpv z16+5Wk>izc;|B$m>F6Wv&CRv;)^lku^K%n^nE{lF94+^7yZ`I?)??9K zvHRP^c!O>IC8b3M+xifcI{99LYsiYtmtBrx*1#DsNsoi8P({ghBBtc+#=_dRGaO1O z>y+cUfYgVg2^L4+RaoHH7!2+(_}Yq3_vvRdLB^sF|0j)JPAkQFXKfTBA0M=pKBBgb zqaGZQWw9EP`f=33AKjW=##s8*l};LYX`T)96L-b>u)|!Y!#CqRR8rga={{lWXzfK~ z>MCb6Mr!W*b@ntmoyxPW!)dO=NnwWwWPZkVc!cY)aNB5V9R7NcPE?*>&UquIWNXE} z=5R+P5FNVEEtc&?4m&QSP0C@DIsG;#t=z#5G;^S~4Q8Vg@$ko_mCe*NpfeFzc;FOQ zj4kVGCjxinc0=lK}m7GW&VSwMZg<8wuXg zsY%)8*M>}DE&5Ol2UJJnhjOe2&SUSAcowjo!|_CzK97XN_R=(<kC#UnqJ_x_4O!(`8Z1Uq9p8;XI@625c_dZgqFgLX$* zI6lh_e&6Lk_o8;km22JRIPAQ^*xCTZB{KpL4Ls^KMYgr+J^Mc4-m@3{@Go*dye7x< zU*pD3F&_%F_@ClE#`CqKsfXV<&UUWf2%12<;=7e`0oM)+o;T z?s&g`9wjf`8Awz@)1{6*{8RV@mH?a9_qE<1itb;4?)z-QBjb+E(S1P0(E1vgo;egI z&Us$7ZMVtKu(!5Sa}yPHXFgYMYNpEUP4$S)dB)#%mgB&08C|1-hWmAN_0!xkv4fNf zJl`~4@L!Thqiw&|FJ!GFki3?xTv;6byu>58jSPPk&;-v(d)908r`)@2M6uqs@c(1& zP2i)d&c^?QWJqM2phTjmM8y)tN(2|;xXi!|+<_U43yKShiip*=2pI?}8XO`SZ>QSV z`f6)iX{*JqQmX>`stF*8iV|@Fmr7hJHytgpRtadC|Mz*$y)y}@UH(5mhB^1%vp(lJ z&w0*sp2clV&iEqwuU4k84+l5=U??M2&6k>qWrj0?Dx1R}{c^Ul29={E2WNtsr9$7B zF22dJK%Qgi#jP9}TKW8Vqd78ck#A4(z}B#h_mkcCJLG*_-XBd+Upa0Jjw5%JGsob_ z?eYX}!yJ-k_9vAMQ_bX6Nf@{mdApifDDa07JSW)I1UaEFHV1<2M}>3~7v|Ykco#ID zvPJVAwUV1~*9CHCi-NZ?E%ReUSMxVMKpoIiof8?T^N*91;?5C)6Qnde0`e*Pm*+gT&HE% z5&zKN_$eG#h`T5kBS$=BFmjyC%aZkiV!cQ)tLHLc)f!p#fLUZKSY-V9-el>8Rv&}6 z4psxS&$ovcB%gMCTj1H{L*~bZu@ZdlC6{FnT=HQ9O~vdVi113UO_s=kA#7h*8XdJ( zVrHqbsze3CjxHA1swT0oG1cfR4K>FH_zKlms)gEkx(2GXw90g)+qwQVSMJ>T4_cdI zpYR4JotjHP+jn`Ec@Y*C&Ot(oFb_iho8{EnhEPHn+Mge9Q14N)3wv=}N&fn}5%amoL%t2h+igo07IJ-GsfL4@DvIH4c=bA?Qya1QVu)0VIn<&*k% z83`8X5xtTzNcKd@Q|jLZ{^w4;`A(?@llpn#`)1S+wQ$bO%U_PhF6J}bylm*aj&mGZ zN>VJAHdJx<=pmPj$oi$P}eP`*!G>fN&8SEhsk$hU^+}4do9c^&R#QuX zs8fnk8jT-E;|x*SWcRL6#l(Ye5!~%)GPo;8k@j14#cU<{DaoEF42S&G%O377)Na@X zbifW3bLmJ)D1_a?hI~b^XHjbwgrBXgqBY7AU&pl=!T3=Bg|r)t~^pFW;9l@_o6VzJyla zU_=rQgr?p3=4K{D-gJJzyo%q|ZV$>Q-5Ngz`c zve(P*`?2O$?P;rKLVaETje2*``MSKf?`-0S#i&Bb)!b20bG*yBpdA5Qyi2Nh)^D{) zJ-_B#G(8b-Ie%)F!K9K8>X_^%^R!Z*rgcT^iN(%8xf7MHg#1xDf!_!CwgarR-6om1 z|9s~t-5#e~_Jo>-AsUq|^Lp4#+}Xedn@zbCMcC)lp{d9cLn4 zHhwSkA|kHA;r_WojD8SxiHQcj4;zjQ_<@ zH^40<-KzaUXGbo;L>|S5-F)yMsF(A;HodUqR^90%T^Bi5=6EYLUl>5ynRHJ$KtjK# z#qb7khU#DqP@0X>YWI=&sc!bbj7iR3-Zg@rO{lEosmZt_3RWGm(=nzHu(oERB3?7T zR2SrLZj^cN`q0dK2R(L}a~344*%t@ynbCG=KnQ;a=rYP-Vv#A3$ro6aFYtxpi)aB* zL$@#<&Y|c;oA^4(^}X#^)p5aQLe(JLqL1tg2x{1Ia(zsV_Y^3LrBP=63vHF00$%>{ zecq!%7+u~RPoGuBFj(JN|Ick3&6tW zzi)mv8u2tvH=NdgC%;e>H~-!LPJW>aZvLzOo&2JI<>o*6-^q{c&&yx(CHdh)IlI>7 z9P}%f6O7r@V34_al@9w+A3-?I3h^%g z;9~BC2FD7^taKFRtP4x$y%M!8ZrUf8Ds3O7Ixt<=p)Uu<2>Sg92EawXw@G$xrn6Dh z4pE?^~P?Fi^g!+u87%#A~grq5p-&8G}%%d4Q!sbgMa3q z5zRKELR=g}5$h#*8J3$hGjKuaycmt%zercXl6*Jz&v#=B$;?!8-DGmzl+X1c8@1cn zA4sk$cafZHa?Z==T$|51nw&W<#w?QV=R8#9O1V}}e$eV0RYSYint^tj`(31u$q%PT zZNd15;C$ltTnyZBlXHD37x$}~BLdmq!+EC*BKaWq`VU4^*C6)W5>L%3jeGAEcgLea{zp z2fHq{bV=eX0dc+XENqd8Lb&VTwqbDG*t1{E)V4-ezJ%H>@0YVU-+-SX`5;L&R@F2- zs|?riChO*W)`#+0i^-ZJ5pY29<<6@c5X#BUnyJyB}N3A=ca&B+-P^ zyWg$OcgTi_Zzf+og*3?-SJktX$sMvT^hyp6I)J>7rT}?>GVChz9)Zy z4i23STB+Kt;(j7kOMf_*r7hwu2OTH4QI5^^sF|qWb75xO+v#BLYC0zia)T&KTu;#) zu!#SFLp@8CYe(Xgh+y226?);cTgq^A_A!HR9D`6*wJ=)4=?T+Cbu_+-nZ4Wj(Hn(m zL)=`NO^ChT@8=1+E;|qnZDE;$ygCL>OVSqUOGtO#%1p?mw(K;EP5z-h^6$POpMNU( zGZ*N6C#w3WiKu3*sF~Qo>B^u4v*k4hfuP+`g{D7Hb8_*jtolGY!c={5kE-wMQT2SP z&Mk=BmAQ7-twWPfSHxASmE`>4V$L;Gy$H!XuwbIokxg8b-7N#Eax!g*&*g*UsUIsH z6Q7iDYbRu$xuzcoIrS+ZBgkKACo?6i8-js*m}#fK+xIc4?`Soc@1{P}G8Kfbk;lXbH~R>%seK?9AT^D%e^f5b}>+T1ecHgi zDt!lzR+q|1St_^x*a#&pL5wBq1wY&!I>+n^P7tSAIk>qX&lh_LoukOpB{rfjaYN}} z`YV}-wyazemPMN7pis!^AR$NZ@68ni=?Lho=*95CIw>l)xRhjPn!@5;VEjjWP)1gV zI_H~0r{)X&g~iB_Wr^;8H8^rn)SfH>JB8T95XM$QTg!-ojsP#x0bS$hIjvdfTC?+k zI)c_MUymQVzpFhuC0}_{zVa7fyK-3Kfb{Lo&suVvl_4+}{K!D<4#Df>`nkD-sabOd zR<(r46#zw8P_ILB{7YLsAUV0yln11%v`bxQnJx+OX*6A;2fkBCb_%A8ube|s@O6PS z#uPd`U#K=;$Tu4x-ALqJCxf=CTcW^}I4561^t6GPG;ko#zZH3|^oQOH~)#mHk4Cvgtmeu!wB9(E7n~wdAImEGk>H%AA4s7Vb8JNwC zh`Aj2)Xix9W&IST6k52BdcAaZNK`Haxx)BcSo(VbKS#ZoeTT@lEn78VqNAP*VQJm6 z3s>tc{-j7t7*o#mlo(Nn=KQDM*6x35WbHs)1>6r^mm9)cCfTiik)w7oe#@VaA=sZM zBEeN!x_y@^-OQVW$=*itIg%MXBpQ3C;TDhaQsAs=_S+`}L%tIEfI@lYym*C?$XSt(GNrYXGUZZ1f%r|^MzTw(^8@|A6I1>>5L%=rA zRB>y*iguY=vl=7tc9|z|?$qs^_gvZ1OuA>+$*8s=SkH3CPhO+a2O+U7STm1PRF@4!Va+gVFkujkxA){ZV zMTSav2>Qz=jS^nkx5VW0liXvH!(9Zu=>I&VLfKHy)S|3F6Y({dc*X8*`rz`TYhZ-)Cz$3^OYH>Y$7?$B)4Vo z57FjKa*Kl+Iwj|8@twcvJtZ%33I*IUCFhyqJ*H%Y78&~6-c#~3Q$(iZ8k6*=Qpt@r)49(8_RTNK+N>XL$4gP3yZR*&Dp|JCBCWZ&U(kOSqWC7i z>)P0Ce7)SL>7Ah5*$Th^mE)V__G@#GevR$XuT4;kea80z(chHT<;RzWD-bxn+@qch zWtF>S{3G`s-``*O+VNHY>+yMhAPuWnhrp>VnmWjthFL9Ki2(gurc=S~Zl|hwhwZy| zY8>e!E(Pe50Jz|(@_Mj&;)C*41-@bIMCbKzx1tYvRJ6E9MQeIN$&w>LwbQ&Rza#YY zU)hV7i`jCYjrdYXsdy~Vy)t#MAR+3y;sW8@7krEP!_F^c%e(r?a=eBmP3v!d#f}*NB zq}Q&{Asv$M%+h>k-k~#Q5^v9!xZjjGG+*NEe2Ik@?mLNhZp>}#%1~cnDj1fpU~s;I zJ)CX#n#7Vvzj6|L@&rOoE!!9QxcB}=;CJN-m|x~bR1Jj{*mk)Ld&{w=58k%*YmN`;7mzw%UmN^f5$cjn3Q}#OYZ!pDY@NcBED-%%8qsMMOw1Qjx|q<3_Z>iDRG&I zQ%w=su`UD7H0JGC2R`EMSW$1s((@i99%`UImYiQ8PE|qG*Ygp}O8@(vYl>GkzjJYd zm*ewZJ6E2MXhHVUZsy_19o{^Q2L8ic-fU!n?k9_HmWhz#$$6K_L_8ESu(=P|@aJpi z%mqMJkbD5sk*2dG!(qWJCHTpXl@H;p%ipQbQ>zB^4}Ce=3=u9?DHWEP)wp8IpI zTY#GTs3(eBGsus-LZ_h-^YXVYh0Hv|V7}v6?rJo5PSC z_IALe<(4rb3L+l{|L88`&fDFYJmsw%89LKcc45A*aRrcSv0sJC02H>q zhd~WACJ&qKALd|#F6%e|BOnr46!jG3VAF7k!e)NHkAw1kd>I~YFW8J&>A_~B3!B5< z%)w@?sjMzvS&JbZ0_g7p=*%AlyFWw|)nzmaO^HOl#O?VKubhjNpa zF_8=Mxi8D-K8|GPRB{`bGLuO0^**^5U@H}{DZ;UT1z-nZv)UW5BBYibNy8X$LKD>h zOS%HvcDwe)u(u<$GlsowACm`Nj=kOf2N!sm)2L5}RN&TgM~`~m(v@oJsiIC{Z@E7A ziAoi+YH*;JXj=JIl(4Uj=28wR0Cu&+z#`CDfQ0`3_SzuPD31o zP6!;KL|$Z#v0k4$FQ<8#3E5ksTFc1$Of5qJHh;cfnp%dFtTwfb&a4*gB{{z)uiOq? zuiR1KtUOFAYEBTM)mNYuO&TMLYN^P{CML}sySb*ev<}Z4@$K<+$O|6XzHqj^R>dCe2_y}ZX6of~a~U!b zJZU5dsM#OQ=j|R5+s@J~`jW$}*YE~{h3nCayR$bJorFy8geU$YH#Jl;-<#9j%gi2s5+d+r*j;W2;t{|nR!8o>(esr zJ5nUxa%ocd*;?F%Irm3dVjRwrJv~OUH|q_H#0rVqTf^8(+Rw%UXO+#HDC4=nthZ+E zovt@s+rFFWm^V7JWFF97v*?_Kzx9ZfNW+PnQYjHo>`+B#1J5BldPv+3mD=su=1?kx zac*JVB>AUOEOd)DW-dh5Q)w55QpN4)9)?ok_F~K={Fw@Q?_Z@K{HsEJyf3)x>i8m> z3RPw*HOFHn$77*FuI&3-$#=fcoY7R2Gef8%B+iW&La@k;O3dW+ke8ywO9O(r8za|7 z-d)>9WkbznOmxC^Y&T4McYelRGHirQd*2>_aryJBe&fMI;s%O3VC)Lj7rNe5v@2gx zQ@)~CNoF41Ilh>C>a1p;VzTefXTKny{YA-ss{&g?G7ZKYdjL9imG*d1)k}p?zFJgT zfKEf=QZc2OY_+yfadtJ5+X8FncFP}Z5$luPlRy%v?l3h*k(`5*hZiI-V_Qo{OReNz z3llr!`@wi1K(plr6pR`5Bhw%hLaSY!jpcAhfT+(Pr7x@u6)OJ*RxL+g1Xx$oY3NJ0 z6aF z`$e?yJXY{T*7?**E884Rk!0Mr5}}2gI#JRKLY~J(?Q8hW>qCl7`#SLuItnBd=HTkR zC+rr4w4v1)37feh>q_3pyy4g9S74re%KXfo9{9Q524I~WTIBXbjJ+_QLtnfkj#**~ z{@(r=TY**Rai!u9IU^ak+{NN8hIu;4N}qbK9o|#MmU~Q1c+Zf9BN$w1w5G56pe!Si z*vS}iVLlQ?tPvv$I;T+3K6lR$Tuc#T`IaD$f#>|UsG)>x;cNgqx#~a`ET08LaV5;c~74>3zwqT4{uw(bJry^v(${4Vv-IgtXayNvc=uHf=LfL1)nzu^B z0dmiKjoho;vP1G^p}qOCOTM)15K|WE5?l1zki987YCR?ysGqk%(xSFlwq>KK^N=@A z+re*HJoOF0h4yP1UrGdWB+YPE<6Xd|MMKU}pk#UjWx>^g6Jm@D0TQ_Uo);vyIIHgm zBlN?P^)l^w1BN`)zn9)^P z<*1OUW<@|6hrl;y4zXW$UPT87etEFi52Od&%N(?^WockAx&A=4P03{5pS33=?nzH@ zJB0Hg_Akt*Q=CY+){L{l+ntyD0VB5i4r}N93Iqojg@$f(qAefzLZElie8h~W%LXtJ zi@dr}=(c9DEGDjdWdaM;^VMXC_4KPd5Kmv|N5Ic0IXC{NZ|hD{ z^D)s9K!LT&d5pn~6`+U2+N+wrWe&`?q2Im`K@2YKOaV@zl8mSfic8+?GUB1DJh&Vg)9m1M06hmwv`w!DpYTz<4}22IVH+Lde~Vo0wn* z*6n<@9AJ3d#9U$RdODjCHbT~`NSI(t@hym5i5xC7Q_W(0SKH~a;U7%Jy_wyhHYNMV zZPJ!5Sah8BW48-3@yb({8Qvnd>Fa#!cCR*1xLmQ)zZ=mEd&m9~R8u40gKxRwgT`tU zqoJZ>o5QK!cYw*Ng49^W+nD_>`;LEbV+9XTy97IpZ?x(A%z`pO7?=^|LHO_(P?8tZ zNw0O&b2_h(W#qg5li~urg}^Ix_o9}e5W*#;MHd_X}fu_DYKF?{P`M8nbjm0 z8?0)}jL|Z3m|v@9ItH0C?Udoq7c*tHl03+iaSYNpv+=N}%2k~sP%n2w;WV}ZzuP8O zH)(?DyhmnvaN~pKN1z+7InLiGEL!0CL?!-7OR*hwGot=vm7(X9mh7EBM9UpuaGoTS zm1)68YlD45Q&LwV*_2-(}8n;T$bottV4Da{yMC+!~(ro!Bn6PW5Q!U$Mg=HK2w3rQw z;112SoDx}^gfp+f7}>vcu{5R^XLr+_NOGtYt#8C%X=wrCXlp_k5{wMBS#1*uV*~Xx zX6u*7>_<(fzi!ayxc&1teVYx&vhUJ?BN2n1rey*|g8(DmV6^B(r~8j`$k!~fA_AzJ z`jfj$>wX+dn}@x|^bZ7FI;OgQW<0I1#Nlz@IX=;kf5-Tj_EUI)P3g3V@dT-uCY02S+uYi?lBXbld~o;yC)&)>`kZkdkXFBEl-K(UAJcnx~!OKl0)l|Zt@3*Fs zaU?5EC05vOb=rQ+^kI`+VBaO|M{>8%IF%L(8hbE7d4p`Dx;ZlXcxy^3R3xPdvH1 zur5g5=Sky@4S;L0X@4&5^XL0B*9~BmaHxQz-X%4k|HvaXf96AI^{1dm=D^VE&*XPd zX!UOS?HgMCIlrRH+9(TEXe{iU_7!fl@>>*5Pxd*xVMfi$yn{EOk7l-~N?zG~FmG^f zN|?#3pX)Evmry3%rgDRRkQM;MJ<<@XyiuH}(f`GhWMIpAxK{^e{86OS(iETfAjM~R zLhVDVlgouoZxm+AIY>q*FJd*n@21YW(V&2I%<T0#sX#%fXjR7kUYu+NCC{II+zIe6D^+1nW<#DfCQD;t@8kbPc_6_AeKz7&t*Zc(< z%EtJ8{Nfs60A{}LWJIiTmw*PdQ|DKlv2`IFL@#8k*V+Wq&RD6fH8X6V4+qPK#tv$* z?6fcqa*fmSU9lbf$q3;pdYTVjq7LA49H@~)uwh&)_DKYxHM$p{iKAgy(VFAyO2#&K zz9L|f@Hj1!FjAu@Wh!u|vhzLV4GAn@`NymL=#(OO<0CSTX?$!WkM-Q>|rR zYYtK~l}+@NeT7%U^$fC3aRwub;~I%+mmBd4$)Wml#fi?PSi?W>ZxrHZjT$Zirz|^T z;jfn+Lf&Pcu>u+YttXLQ-5?+dY{f%j`cEeP$vhv?q2`a(^JeD(WD?!!+R$nyjy}FD z1bL2g>s`!oc*GppBg>>x4t}*(;BVGy_5=BExaFVpsf3y8r)+QMbK1}+{#zd6AA z^i~uMFrO3eh?%88_pjC{$7=Z}+NW#l%A(0mR34vA?38e7@|imLZFBt6Xu3FKrMUf^ zR7&y_e#`WPHj-o5k(xS`>lFMYJzLjL9A)58Rvx)ikRo_YO!dXsTIN$!0xNTh+X~gp zJ1z%~4sDmeB~+Si^JaPD#??Txz`Skt-kP(01vXw1OHU%iR3efqL*ygzyu3(fue(9@ zB;MI7D(M~D?3Fv&Lh+O#vCS5hhEx8||8>D^IroeaFn0lgL}_b@98>UejMHuz!8u1;w7vL|;Pw3?+L@ayS;6&hiGdEA`J zu@DNV#B~)5&c_Fmghz`Oy)DcVb4!Sob+{a}t2hw`h#!Q)uFM_*%*qO!VbT|y&$QWr6)7qO@oR?PdIndV8=A_3A^En^8~g(zdK)zab97$$H*2U}5A}9X* z2YHn7H+`UG#2w4kG6dTZbnzl5KC2&zocN4cnQglC*4B-bl_`e=*Fag;W;08#8TlAX zcWq)Dhin#|(DzZV%UYIoiAUxZZ(Zsv5&vhjfbG35D>d3Gf>9=bVn;Dlb+6cXVIk@L zlrTf}G&&xK;2zQO5Z!ep-pCv@f2frdS0QdhJb69uBP(@5Dce9KHOO7OE-~I41NGdj z64@Lbz5rsgyLVK}t7e=3@WOx~E*I63NdQ@#GpwR^jcPeV$!G7VmV4)6r&gjl{qZUR zv=C&c=ngYGwHmAtSt)aZCvxZcu+j}?S;dT1nKB8yPa|k<=k8txHR?GHY54|Q3>{u)2DLRFcu6KPQx)gv z4RO7cjj3JCcM;w_=REvP<}qD-uN$V4mh6wQ_7$ZC5}PJ@#SrFS z!UHC+sAQx%wN>;&#AH;E3s~6$bXMT+iN`WW&mYNDds#=haYK7&oA+m_L#N&gh&a=u z+sN|stIg$4Wbx>5C*CX z;N@P1@`c=OA+CXJ$T|~lflbD63%=J+5pIFI2fA3Dm$bU~rj@X&pNllR$35$*$IA0Q z_pB}*mC@9~lZMLB5|Gexfj)u&UA!8P=O>&#$>Y{+%h)WR{NYVVcn|>BZpCV#%Nck- zXVo?sfgd&-Z-8=Lh6zcJj@fJN;w9c@#@=VI^{*-p$Y}6ZgMi&QW?fj`9i2ityF0_hJdq=XFn&yNaM%{W^7b=xb=r)eB&|MlQ zcEDg9>x$#!!BdcR;J9Dsf!MEwES$kIW9zH)%&gLhp1%9QnwWhA;%~9vsj}?OxLwR0 zOl*WozhC`CPC&ADcP1)yTi@=piWZkf#&ExVSQE zZ*-28d#@M?Za`K#iu+Dgr-hzUCjsV^~l6vL3!7g#Ba-s9Lo1dJ(*rGWh`TDVk0G_#o! zud~f*JsOF^oAndWs9-Wh3Us=2TY^EwI(QWJ}b z;+icVv&~)1!U&%UnYH_hVDT?F7n3*hIRvel!#~c60K;&y{-tbX&_LgLc&v@3ZU7oZ zR{9)Swj+2GCaxH7)+l$7=2QvkPMrc{R3A%SkH453#_`9Q;|7brnX%Lp3YC;Cr*58f z%&kc|3>~R&>N$rnUqLDjf}YKl(NP-{td=KG8xx6%lp%#sJoUsq(y`Q?%lQeXo)Auy zm(Av<&HS{RpRMKxNJtikAA$syGEgg(tl%fy^h6aue5*D;?r2b!&nM=*DaDI;aVT*exLH?L{bVPsVQ(i%8(dX3Eq_PaQ!RVc36X)}C zthSwf!?eAFw)yi-Gi~oA`J73Xm|FlR+k|95_-P^Y`{VvKWWPd>aCng|_rDF@#Dr9L zFR=)PVF@Dp+xchd)xf#$8w5PkAYkfbxiOts98z=&H_gJ1LcMIYNp|rPTyr||YdhkP z$}%&a7GpE{)*}D~J6Zn15IStx1P=1OJyy1pXgB`y?eS^BB%_ z=D_08<(_AAmi`6ZR(cW3$qeBdD3{1ZtLc|;Az2A!KU6%o+I=1eZj8K~PnaA-7zW<< zUawL9@+28$#2sa@sm>eayKf0linIc4iE3Wdcd`w_AY0}H+IvIv_%st!)Aqf!&ZPum z0F9#&!f^w$82+-xX4!3m=`$;w?;RyA>83E;I$V+Bfln9;pLL=7uHuR1*vmiAu(OaH zg>hh`hym>t7EM<48+`C?gp5+sgS-*x);Qdg*t zpzQW)QMkEkATEa+#f78C-io8%Sk0o!gpZ|>IhF%ZrJU#yd~&>0L4AR9Wutp`(7jVx z)HJ{m77HPK(-Hwx;D$>7(mGOFI%FJXv1FwhXM|UQ=0A&Et1H1C^n#-PAYogYOQZhr z0Hw`&<48us8a~cSAxLHOl4I*8!MwxRi{Kc0(?1K9lf(yHmwqO8@7@8Xi@NDttY%7u z5fs60#E1kEFItVw5)`Rx`dV0ms%)7fXr*zl|RO77`+WB;wt8ArzOh zjUB3l<=eTFFez-}ujO*5;G9@xDgLKi>MS4p;Ue1dDq^DgfCCYlfimQvb{g2|s7DXRnPerK%y<1-M)a76L zn!*yoQ7k)|f2o|~Eqgi#?CMz2C!N3G(f^qE$+Vwqn%17|JVJs37S|mvnpa09JIm_^ z$vxc+>O6D~ckg3Jyw7D}M)a)LNusi0acx1}sSUf2s2kLMqf5i@1xe9~uq3?Qfih+)x}W z2W~1=e~F0AamOtrFL{B?@=r!Ar#3jixjA`SkA2CNj0G**_m3xYbbcJ#d4zhcnGSvJ z;`%};?5Utjwr&*ERtOIq`6LcLc(GuYlAUY8Yucv+MKVzXQJ33hx&6PSH1m{n3GcGf zrybL!Pv)=_>@A?`Y2(u_UABFfd0mQ}ES7}$YuxN9RvZ`uAtS3^fy4o_6#%u4HzXe- z*+SC0=#Pl{)C%V}4c;(8tpDRR~Nk=$MMp~JZ zR*K%GTM}#({1a0I&(sIKt`$})zRfj6Sb-seaF*Hf3ur)2d-WGk@P}MpYm`SyZik8Y zTTmoCGDdc+5gZ`LG3I)ECm%;rHFbtx*iHa%da#{*3>HlqM(Wh4rkee{UxV3MuM5YI z1~_nDc0O=6ZlZe{fS9#oG*xOX+gI>^xm62_y^ z#&g(fY>L;vJui<#J$x>BbiuQ8?vPq--=R-?Eqw=?@D4~H^RHyfeg(DzI&kWU$e)bdw~l9XD`Cuwj<&_^!d<;yB?Xcb@2 zg6`uY{Apf+R;aIuQrB~!5#CuAZxY48yK^{H{<4ch*HEz5+*Gpb`(D7xj`D~E^O&?9 zVn{=2Ux)d)!^I?V`tr{$M5^M`G_4~1&uw&U3l-4uN$khO*LhF1)%JqCV%71}3`HrB zu`XHPK_fjia=h~-3NhD?=;AC{Ci!gNkJorpP|$N3i(>kjaxKcfA|Y#K(+Kjezk*M= z&9rYP-@RE-{-oDYB2QYzoFs9B3Hnpm3kE)uP8>v>R+Q|3JpJX{R;+3JNbg}Vm zrqHvQWHMk`o!t_7=EF_D6bXC#Jtaiv@CWOeS;-$A`Q}^ zYFYJkf|opvb50}Zt;lv7L;s3DQG!e z8a8OJDc38=)6Y>tA~PxEy2nXq@AbA^Kw$fRzsj5JeQ5UO6J@=P?9VCyB10J~1C-=& zk^?8@XF4*P^)}S`?0RpWS4iD1%|67`G9X{eDfwEq^D(#HhGO}-U!^v-lNGm9F#Rb8 zB2BWjLe9PQ23buY+DiCk%|VodbF$_4Z_*v@7@~6xudAdi7h8!P3cSd6N^ft%H@Wkj zovPYdY_EfjP$zsY1@@h7)=IOqw`BctetNH!z2T=q2;2AV$2|C*(Q~ngzS0p9f#2vu z%*X|3cK|d7Gm_*BeDqd|S^^Ds9$VzWPg?ij_f}YIIW%9(y+qQm!spp$L>S^dv z&-bV&^O&*ftp7A`xP#O-XK`X|aPobdYwD~%&8-tO@_o;(lNIT!=+!q4VjO^->_V?^ zr+9spz)^O$oq5$ilOO!hQ{*&Ek71h%%X@DUH!_SqXB8!uS0BCZYU zu6Ba9r@Pu^H0Oa-7%uk4$zG>Bw=1rhy>YIoWoo{bzky(2?0pPAAe~nJ3Ir)(trj4@ zMeNnir`<&T_xKW* zw{3j57wmiTwx@&y_B$^$P}?qeVxYEz;K@pi|%NIT8!hMdb z6bW%Bj4c-q>c3{NUYA8os0?lakh7(IX+fvf$kS#UjtmFns{{`Wffb4tFbKz9Afz|4 z%9;GhS53e@F(zPNc31Aads~4#*bQ3=XVL~#{727y(8B-QN_Qd}m$Nr;TZ1loy_Ifk zU}$pVFh_0jBh!(4Ntl$G;q;^u(N~|#J<1$6A9y%3eJN4s?Fv$_R*MuE685sBFot0W>+zc^PRzR;?|%u&K) zVb_G2sf^ja1$7@Tmc$u;d!}EFM6dJzu+`p%l}}0dHd@P+NWh)rrw1|C^lR*WObJ;$6%eyf5__0<^!=$ zZlKCyshL$9g4JBpba5@9-y{%tn-q|GoVXthd9&UY>n6E*ilt66NsK2J@U(z1G3X!D zH;lT#k-1zx)h{?$E}!s$9_`);`*oKa+z%S;RNOb{Xa~n-%MT=EoD}6o2nU_<>4u<4Nw zN(6D~AEUB*MRgT>Fq z^L1UWN(eQVP2KQYZ~GbwMMH80G{pVxHUw@m0ZjaE4bCINp$q7f_(b+MeTN>9zZj>0 zkt{IX0ifBBxRGMR+&UG^`qik~Vb^=7Jye#rG*?|o5yDggA_SoK z)U2C~I4Lxt&({p~#Y|E-)pImL(zE^(j&3K9Uo@X~qPg@nW+X(!seiDKejNi1| zgh{^aGP0rHC&bXw%L-XgL1EPkD|Mo8r?a-1?H9A*&_{>F&rm{dj+%h5IzIS!T-R zuO|rtk6Q;kdF41y&h{iI2VheLuT<%r&Vh*~=!VJ2OKkEoYpxP=Ar72hcr*qKT3joa zVO*E8<+*0P_i!9(jWoY069~6R9}c7sBv+F>l4S0L-UbJ@(mB@aP^T@E%<<af<_7iip{F7v6wI{S2X|nz~pY?%!*4>gdEt|5kv$6}Z7r)P?A%y?X5d3^i#7T_i zWUWR3uQ>ye3iHWCsnQSw=bxtBK?A+>#JpyAXop(MF>s~JSo14e+%i*nb8_)kBYnRW zn-w6E$#<|g-@#`O#ko``n*uAj9SXFPez2kd906$I!(}flgi3Z^1p{PmCpV&D@>Vp( z{ckV*{jbo`MoDj%>SJRH&*JrTv{{I#^{-`6s-s;=LUpwNc|}hh?Z5L{^+cR!`T&LA zI@+)5$9;9QM|0|{D?_k>1|u}xD&yBGGj+!K_tn*Yv5>Zt z?{)Ol)kX(mZ(VIml%fV1U2Xqhxj;)`%Ef~ z%2uXSVgup{{B5Cwa<8%fD4`vz5p4+xeGrPtpKm=R&(kbX5^Ix<@6FEJGa>JySJEj# zuzRQ{-caH6(cXwsho~o_*Oc}R)3!Mi`u@n3gs?}Vp14OyD|ctUA08vEZ+*kGF7%o| z-^8A+%YJi|X}!alN$b!?jq(ktg%7(PDCya4Z>_}3_#kSAv6_=)Cghs#bRbz|M?UnF zG~PbhY>W+zgpIM%sJq;N6iNBx9B1t59nS6#5PIqz&fta7JG_A^I&XT@qo8?wb*&Tl?TY(73ZlMkk!8%DCE=)jOv6Va$?iR%n1Rz{7ur=QII6J5-hHUnU zj0@2ZjrF?K-N=!;ISj}S38CE2DW)P^(SvEHbB+Rf|*R-oDuQ<_bF3a*fB{nk~rh2wF`APF-8mLU&1J&e^Eeg_Y7#4~C=1G{^^w#W@_a!DtaE6YM~1RdhKk`4h82=O$@LIHJ}`6stW$2nYU+LA z3mMiZE6`f^jhg9rV+sdqMvw z5TyESww3%Kv!7d$nqDb;+j_ovg8u^%Y+~C}FNWE{5!lIu;Hx!vp4QiLu->)aRH#+sWn|iD9O*}*K z?;^qdBaW4w)#-0`)~)QU{Q2JJt#M=4!PB5`%KC_OIs09ZTOO>|eMOY&yR+2O`^1rn4JAouEw<2NIp*LHiyrT`TEryihBC_@F2wKzE3gd{m6~fR z69-v=`BlV2x6k3Yzd_2@A)yAa94LlmHnS@P>wN6>P*iRV4@vW+Uf6&0#{WnAC1S6O6+J7)W?~yg&Fz`}teX82{W0w281(GCzh`i@ z!K!XC-{X!o3gJY{E+0a$t>LB_7^OAK-CKLqAExffRoFZajt17wJ61v;jf|yhvAt`b zcUTlx8}lj{R=acEIDvD-k&+?2%ynfT5xzTN2GDE#g#iFOox1z^DSTZH0D_A+9|*-Xm~{4h);Q_o>F)vKr?~%dH<7xb}W50^aFj^2oOj19tY@e z3ff>yYZbAgXW+OE>w7Wn`?f+G6cHmPftNxXO2kaeklAqJ_N)=ud43+ZKjAhLa^(6G zErZlVcfRlW4Eqgcb~4REbTI#c2xWw$P8I?z#wKk1SmDbe9bD82{5<$R1ACog;|0EN z@j~G{bQ+G+m5t9(M8+XQGWg#nNb+^vj*gP7oODr36(kYvClJF9BJj3OEcT=Ru>8Gg z2ZNy$EY^goXli_^Gwme0XD6I^`fT=(&+1q)GrBU|VsP~nZ{~u=*(R%OMl(cA)PiP= z)KPJAa7X3)1U!;v`50s@orh}g&qN*i8ncP_TLa7 zMeQLY#MELGs?mKGiWv>`0p9xTGNft{HQPiaXORN zRLWj5s$~s=65Ifm!~!2LT*#43?rQ^GbtT4U^0%x}Z(D)a7ml&lVRMJ83h%==TKh^6 zd+BDhX6OPAoG^-|Z2!)gA44;nGxLoQ4?W*+=&-x;!~TNlb%(tM2xN}-vIb06nMA%b z@4lDvS*McKP1H>~$@Y2qQPJq=k|9vHoWZ6HEYR2M_ zU{^SuC=_l5lMU=xV4>B0&J(QyGhTy)2jhg(N*BMmru91BiJksw1qHzZJc7J_rDYE| zYNm9o@l7!LZQ0wR)iE-|2o=N7{hUiN<$jGn3jfj{k$Fue|2Ti&K{2);*6m<%?0jI{3;ciVzH`4THe_L~( z15~;Dlc`1Z9BqzfAwi-GxbjG_mZ?2NaUm?$WE?8^;6FA`h0M|LP~MoM;q7?3HDW!pVW>E+et5_?v^Jj`Lv9&pe|@HE8{se!4jLRtUfT;28NTT$LtVvrnIg^ zEgN0{O#oaFr~!Fwz_R1#v`&~?S}>3b7nc?+;8JQzoqEH-@@tbbjC(uIJ$*Byl2hu? z&bZwyc<~k^F01<^=j8`*Uck>3<{?xe=UbFQ1g+|2q4u;e(Y;mqC?Oy-laC9WIT*9K z|42|P5Aug$5zJxINI4-ES*$ZgT@Ki#SFGNKm3!PxSIBt^_)a{L00ZR zn9%2)w@}0|2D3U>0}nTI726v{{|`#pd#;}2jX}{5?>>-=+VyXSn-fz+KkWpb6&ItgeO7dTN>U#-8&vhOrgb!Ihg#+feWrlz3Bbb;i| zU<&xclBI2(0A|fj>a0()WD2tSKu5^sH*+%1N-g4v4NK=lTt3gt3%B0eOJ)SWBNW|C z2o{2Wch`i-L-Qzq7xx1$%F9aMFx-G~&)#5c+y{)p_Zcug5Ocwp!JDk&I~Z4wUyz9?^&n+`xdK^N&)L%-_(Gy1g`dg$4=Lg0z0aSfuz=vPG$Q_46DPW6k z>(WPrh3RSAMOAkv`L{cd{DB<}X8?Pae!-7u&Q`(I+IM#I!~|C+mlrgn|MW9>KG;D#?#4@;aw_Bion-?a_?Ka_ zYUA5ouYu`-AIgf4>?CfOyhr&8&F5DvCSGcShg41M+bazZ*)DzB*XlyonVhe3!X5Ss z-|nRz7`w$z)ZXO``B;#0Q#f5;6isgb!f_6uI(t)kdJ$K2UpOBh#-kkc!|Az2_A;Tb z(c}kToW|Wl!NQWqWoyio=?VC>Ebr2jzwl4Qb>1@JE`c>C2RPySNqe#qd;Uhm4|15W z2H+lR9_lB%2F&j>_Sy7Vw1qSM^rQ+a*(Lk&JmY0V7;=vs9{I}eoZ`b;7nMZ=q7)a6D{kL4nLp1Q3|CWnMgr3qPMBudra&}vYE&|uL zedszo{7O2=pYKPInb7J{#lY8GZPzjfB-@;e=)8XDj7d{9=atSE`HOP{6C&3`C-K%_ zhFei^YAQaG)bor3%sRx=B2H=vZSPdhkja|S)mjvvWzDkV9m$qq66Zri0r3vm#g`E=e{nrj%fNZ@3b)h zoNr8^ui-haHH}r}8~dMpW7}vf^8>HOvp@?Ot@Wif4v`w=2zjun@%Vg=!F-K>rpC@w znG3Jd8$m9q^b@dX-)@$9l|F+%NoMSne5IK~axmE{m2QVO_9_kdO{Jn$4D36iffpAZ zVz;Cws8@dX*jNT4c5r*ZIdGA8xVywO6UsHCh|xe(=2W+u@jXs!iWQNF%J5JJ_I<;Y zgWHf#9zt1^%L!Yg=yy$@+njzBRcVuV8hqvuvyvZ_9*ZQax71DU8w}qNO74doupLG& zmR=%^SyV_NmoA%yJ*yPxaroWU|@JV^V=HF{(!e zC%6?Hs}Is;3|OID_0i$f6~&?CO>Pzh z6dT+u_@Fmg`jQ1%q9{jH$$iD~!rmrJEzH3Y6Y07ZmU42h{|J+Cdk~tQ)AMZw5(^UFKp{DC&ms z;E)QGxO6EnOlmw0cRbMwsm@)v&=$ruo}Nk+gNasZVl5F;@F$l#uP57V6yTU?&O2iD zS?O}n;(}&N>%_Tb49ah^$e{|F`Pb$*H!PM%|>{v;fH z#Qsa9<~z0irN1RtG`&pjjS&8I$+5p2wgjO+E_B+QSvc**_@OJ)Zw)z`o$s-_WE59Q z<=|}f4%zpln15-N5H*FD8B)r!T=<3T_)OflM(oI}P=Gs*;JLP*F~a^yEujD_@p)2& zm){ajC1r1n3xjQd5H7T00^e}c_m=|3csgzgmsb^&GcmBO;10#P3GFiJmE0BrTY%aN zoatK|C>lyG4imK^Bu#CR)JXvQYT zoJi3-?ny@h`?WI_3CynT{65QMjbJzj+qCb*0~A>Ud1SqpJr%qaWbGi?ITe)AJG`@h z=;6Nf`F?7EG~E;#_nmX=7Ra05d?d4g4@VQ^?#=zRW??qnWf02O{Fv1I4*;fe3YLT- zxh> zTB2B}w}P|7HFM{Qx`S0Wc5}-+W&N!i+0b{cs;2)E@x0e2; zhm(la1o4p*u&U$^rXYhf7msR}xv{Mk}oH?Pu7XQ)< zNW*GLf1=6e=}{YhwQY5$(W^z{6J_>d`!BTjQ^bmkO_ZIfbY-!4D9T`JMtqlQ6RgR=H1?qV{hQcRvQDBiG7 zNw7RFZ|BN|u95V>9`rs>gQh*?Y@w$(Py!qdp}Y2xv9;WhTad{$f;n_b1#K#^xrpA$ zk+dG(qSul1!XABuhB1&iI!uwSo#J)4vp*~onulsf6sQnknMJ}F3rV9xjIa)l;D3e1Kz9Q9 zGXhWkI5|r4AS-ntKj*MYFNfQ^SZoC@;_n*Ev$9Zctg9iQjBi;r)uWs`8}Eo*cS#d} zRLkc2^?a<*wo%2`5BKN?f9eu=*~|m8Q`a!GWd&r(yzSn8iXLLDvJ zcVEIgTAyqt5dYXLL777<{kY1q|L=p`RLWWJBlOu?BiYd^*%BKo^%j_g70eM7ELMDj z4pf3t;=DA@o5iDbgYagNo^on81z^7gOqIsw`;& zX^u=OW@U!ACL746tsh|0+JTbfFXerKaQh2}DFWNAvYRloTmG)B{C=GS$ST50TkA+V zedyPM{gU=l3T88h#nPIh6kucRzv%o_OZuB$CWB?WP>uUxCWmsU+|KTO=P%r!b_0^-7> z&giJg1Q+ZV4NNX&;PwVgzeTS_xQJ5WBETpZTJM%l_8^^Wn4cR*RG2NuUZQMR`bRRe zA&s6HO3&*`-}Fy2&Aza`DKl87IBdVD{=&lkiOI_7z`UU0Ux0sa|I%(c zt@8r6KO2*hDIwd6p>sG#uprPT45fdjSnfXT|7+}G^36QEdQ4x5U(nf6WouDhu;wnM&S_T{Cq^dDtn zEPKq@H)BPYvmpO!70u%ZTjcNhb|bZ9yJpk3!s!Vm{MHh$j-PXd58w}hRbw-gV-cH1 ze!Qpn9U;3dHG@DUq8yp}>2f~CQjHJtgZWA$s+bg+&Mw1`F!VvR4w@^iQO_kDX?LDT zOVb+Eg~x&OdBk3pMr0?>eYjZzdQqPS%lf+d#+dq+Gd&Q-dZ{bjXr6xBz)QL&+=g^b zx8JYmnniFPdhU!aHx$|5^n%dgbXv^8or7|3SLxfvRdEGWY8&^Yv5e za@uoW|IW@DMffoaLnCfLt>o?@LSs>b314f@$|3i#HL=u9nH4=SoSIr3OP8NEjP-Jq zA>L)J6Xg_2XUcyiuLtog31B%O z0eo2cc=oTFIxo4a)W7UJ&>!&+y%7d;D7}QsuUp{1^>RKWcNHzTD7mY+E}Y!ut2-pQ ztHj?pnfJ59g(xj|z6Ca5GM1V+AakpzhK^dtR#Xa@HWVFTPplImadI6RWbb{^i3&8s z?3JY`^QKu`x{^9?@0mkjZBK+pICsQc*4bPa$?SFMv)swtYeJ#K{hev1}&y$p_ zIM*HM@(iGl@0CJ9lD3zCC#bU;)Zx$fH{KeYY38ZAkKh*G1D`k!^cmQIiwC@+Ud&L5 z1qvqN9$JhGPF-^ZwS=Mn<2Drak={%gKsUK@FvGQPZQy%qLRrI8OG)4gvrOJxn9Xft39qc{b9(BmPl+A*iV<;0#&mVU1v&k!G z6^tlpc&DLRqBZnulY6j+XA7J9E0j`G3|z|uUQDhPPMtF(a&?PQoPJIKCwh|OBy!ZL zp(V}DSq$?$=n0uM(7Q{ivPz3Ydv|T!Xa(RwKy3s-2-H?3#5AD>m1$p%<$@6H-R2YO ze5m!a-wQ*+fv413LLyi&-`{XW;hwQK6fZ$|PL%QE!0G6y4WNCoU~DVub!QYDiL7eJ zffAG`xuK+CN+GtjAACWXBX{u+d@w4*i|-JRQGg#g6LvGNrEVzBmS3}^5LL-$L!IOT zjytY#OiK}Ab#z7RO2Qf-3${@Y!42#EtFYNkMH*yDM4D3nA93#j-&B!3@TX0hmb7qN zo<&ds7K{|NS|2S{X`q2bQYwa-I`%YE~OXZ%twfpkv8p*?jU~0ipwipXO>B+ac#!jBbb3Ym{ zcO_R>?qf|dYe8@Yb_?{Mn+_qr@lZESfb;atMrR?<8=c~>1ChLe1>{OS(SX@aKzl;Q04jPx979Bd%jX|uU8dF7T+eQ=~2DshbpYb z{Z9xp%Q6$9J;}DtIdb%r^|T7eySB5 z7iC(B_pKzBIu05C#m*{Z90m1!wREd;lY?z!|gNmJ$yBY za#fcR2_B=o9tgIJv(fkR)j4$R?Cf*FUkH2 z32Ul92pscn;#%yGU!u$TH@QZjV?nN|>?{s?xESg+IyZ$YUt+?`G<8d)ys_>X+9*(a zwzQGIc6Q6+f<~6(->LqL*G9*KNKTS)GcW;WOCg%+DWk*SNwv^(R7M5vlBS~J%2azT z=Y7M?Z>1LU8|Zk~=$uc0vjL@ol<63s52<3C^Zjv$-wa*X{Z>)+<`r)_XrJoM{x~Y& zciREi{dP(9vn$?q>>~PEf4o!&{ieTd#rqB~=%DWN6yevk`>`H&%_0Rzg>)fH0HQJU zJi(h1_8&@B#g&HD*!ckpAa_EkTT0}nokJVp(nF})w3hi;ZK!D>Q?khT#RKNE9dct5 zNd9%wM^r_APKEvPt4hodQ?eQ8$5`H9JFU&=?2>dQ7eLfbix{1vMbG!gPj6{7M^QkC z*|gEHael0=#bb2d%*!k>)ax&Jy)TC>=BfKp#r#n_`T8e{IU|QA=8XMF;x=y*iU>V= zxXw}TF?+wfXG2Ps6jh&1oaIcM$`1ahR1(?RXeP7xHQfA<@p-Df@>F~I+j0pnz*0Bp z3YDwYEi$`fJ9p`%3K81qI-O;O)PSHY(%ASA6b+5oq43|;ZP6k)f#TAKuXw9eirrEw zED>8Pd3z%6*cPvTmR#z&o@dY~*L8w>Q+~!CeXI1W_u-dguwY&b-RFpCjjPw7}&71@;a`VxX&{A`4Rhi zI`o;0J3f=qgW7xx--_KqLxIj|t{Ct<+Cj^wX_8h2!`ASR&(hh^?`dq$9;@PWJv@ zXJk@F4R zMk&jV7$!Ji9(F>6=#3^m!=B;TNojH(Woy-#ty2`wd-qJFQ92(IhT^Qu@i4bADXYTL zW~N(lqdEvImv2;e$=nmfUsk(>A!v^ewFBR7p1c;#?a z$Sq^s7G{*4Ph{B~Bl*L}rIS9D{QcAV_cVNPg=?=elo?`Aauph~U-nrVmFKiNmg_`4 zdRb7+xftktWdyTfD@tsSVDwb-=k~Hg{7S?JEgBh()wB>GInF9_vQ^}pSOw)2If^1# zs8xg!Lrd$eE}EPTHbH$V_px9P8ptSpkEg!GlRL98Hsm7D?*-L;turtu z+#JCt=9b9O{aoZZ)Vj!%g4kzf=EHg1k67*4lYIXX=?Kfql|v2!Ovf^pc*9|WQLY;VKL5asa5E|WW0=P!?5DycaTM1(6G z4|(~Z%i(H)9rqqCyL`I(sC*m&K}kV6hRR zvj$_!Y8;Vq!Ne?Ia;`6P%4)h#^i~d7S;wrV!vx|~jcuj(xM_uHVz};|=mVDf7qo(n z-d=acE-Y_p&t~B`!KhI`6 z>;mDrrl47{X|6RIqrT&Kt{#{ikE+FuY0*}F2JbK$lFitVPn7a{Ep3w>qtwD^y>f;b zloR>lOW^Yl)r6o*G&ePCkStzaJfJ27IQG$t>DO2jf|}$Gfs^qipf0%j;U`kb96txr zN7S{~XZSO|YBcg58+j(G<}1}b$+g$ZRH|)G(EO8(PSQ>jwuopH!8)bOc zJ|N>$gGk?oygx`(L;Uh4K4+M#WNXb|_cS(U@f#(KJ&emSh&Aa)ML|#-%B$4cX#ARb zF+yPIxd)vf7{5*4AIPlbvhqOfkw(WH9lUqt%f=2|m1S%N&fK$akP zPEqY728oIaR}ibFZOYW^dY%*sY7SyZ%$GTvv9gR2(Qk5RP|@<`kt=0(^Byq#l}|@j zh;zKD5~`N3v0N);bY3Q-ha9ASDmncrZ437xx^ZfDHvXs2pr`&rQoOvG(2k&K>ZW_X zVdcG|TO=3!jrhm2@yYjg5b-CLb0TL;Q4R7{DPO~dteyX+1gp?FG=4g6Jv1|7rIxCa z?IMyzJBgc@#pc+pJPQqTimQ5qIDa-x4Qnar7xDMekW=sRWo}IE zd%wn(Roy@Oh_d-*b`mzatXowvyrvY;Ia6I zkjr@`S!9sd9|9$L!e0a`&LK_}L&9%#4&e*dPWLXx4nWyhKa=E&A-R#1W(5Shpgj?% zf8|l;s~Eb4UWM|=gLdgnvHmY8we7IA0E_*zhFOnx#;2MgCF=;z#`xh4=42?3tl51v zqae3-{{tTiY*FJnlgi*?V`F4OxVFt3Wr@AbvMl^NN3)HN(W0wjk%uu{s+92BCeR6) zUnST6nHOZ96bt%TSP7y(UB;AVKrkMHs3Fv-1$=z`@VEets?95U{1Z7up6549P`#R} zxcD_(dqsI*84Tn8h-9>qj;L&`9iC z)lZ=?W?kkUW_-FpF&7pD7trK_Sr$=o@UbAsr#^YrpAhn|wVj3w4@wZ@;}dkShFfKM zTEb~P{CoEVymDr}FqoJDQ8<_!piKi_eaoy@EY^qILf@rL0fx(u*OkkU*Htg7$#!9| z%UQN^uw#F-zudnvKkR%yT|U3|?5WY-uU6&Dwp+}qfZ;PY|NOh~T^ znH;c=E~-Dqx`a~JR?I`B=g5f+yld32y#5|hollqL(pjWa5w)$}=-4nj{&mxQQJg)T zUK2EfrO9(xuS9@2>mSOKWcA#QjN!^C807x+!{QZGnaFYuxIQ(NjwJUa2a~N2h=f(n z;U)&TDp}@qW7TcR@FYzZSj6gqmqTi0(|m+#Vl(R*G{w)vYf+Ci7uP7nVh@Sv~NxFN92@k!Zzw0SWw+#7R6`Q^T^8aCki9>o?_Rc@1mN`^d%RN z+`>n25A32C`6`=+wkwkd2AI9~(dT-WV*PhwMS8xt)33i7l8d*7e!c65RPPhtU5V-S zxOc!IhA$+&ZzQ$9ANRA#+e|uN;C?y5;g7p2(ufAs4&;=xer1h6R#73^HR7}_+ZA&h zx=UX~kYKB)kH9g3`tROR+FiQe9i_7HAd_?Snw4zZFgVK{rOc+7{LGJSY4iW!j#B1ujI#f|D@uQy zdqwFDN~ZsBt|-0h_tGPnc~CDp4b0bC6#Va8QL5~0d(90JzpL1(ZEU=vEOY<&OnVat z18;b$Yg69eWxY@wP9(0`6?EeC=Us+cqz%4}^NbsRPO<>*YPj+N=Of);;Fki$>WiW! zOM`X$79)ANxm=cj-VE3EEICGdb~B%)lZ4H8l55zY?dXaGiNzacaqXZ{UAX4y>8c&%HyR$V-onJnn=F0+l~ATw9bHDp)3V$J3LRa`1{tN? zTR({6+N@lPmGQjsA=NkvY{ z-fYRLwckV@uoSV_B1h!m9CCaeoR|NgY9PpeUxE0CjduicUbY)wsP5mbrKiLr|E!u7|K$f>Djn*1g5JROsO_}$(W%W6nGoV*;V3v>f=W9Wvs~ktnNj|sPB>L zdx-iT=*JruUWa5WA?+7;ipsx!uy$%u)Wyn0p=uxJrnnoG0%ZeND&`P0q~yP$3sJ84 zA!!dL9kL+3R}RbJZd9fVeHY!BJodM)WzQGtL-+@h>GnTpC3U*ybpnk*?RY`OaEjB)#jWQ&PpF4{p=LchtRJ4=T!Kq@iLj~o+gho<}6F%0jb!5-5$wW2C!E
i?f#wJXOg#>7|k__C1?1h$)Lqp&_he{~d&f#6EyU@L&k!uG2g#hY(;9lGDP{g{~OT%u$#c+mUH=j42E2meJU+iRL>cd(`Rp1 zKt7tZZEHDu!|5yN3=P&&XgBsJ&HY3@zg|^#Zs?~u=}OGmgE$-0xdQfYQ~q4Ukfxb% z+m_Ql1^zI;mScS3EJ((-)UB3w@P5l&-K?C|A^y|6T4XZ>m(kglCO+F@wuk4-jnEZW zl-1c0(rLBunW8?n&v`AfAM!s4`5(YszpG>|!sk4e(fYuzs?R%ljvFQV`OFA(72@m9 z$zC4UU)~-yXtXW$LPso7OHUWHv){I+TCK@luGS>hV(;NHwFdT=*^4B%JRkpdS)OB? zP0rz1&&r_BuwKAAIAg0K+qIf~N_4tP>kypv8H8LS59<(~Gt2l+up-qwgAT=-Mvqsw zs_JlO-bpvlf=@b63;G0e!$RpfntRPWofqskEpyAtw*Lj{4?|8mifqd|r>eu+r4BNT zeF<43VSPk;reuv&uwLc4ob6}W{mrKfskf0YrL#$`I$xk;`fZn2tIKm&Vh?GZy1cVZ zU2a>gS{9bh2j-e)c}`kEzWtT(iM7DDFJnX2Mm7)jueYHsG;a+!!rH#Xxse>sjX{hFFu$KxgW~9+NDz^mtTlK(+vjFGo`ty4k@U4*C zvrI36o~ehP!TtjBEkDQpfjQfnDvY;!j5j~VTb){SI^RpSCO76FSnZZ|X>hd*GW1ul zYv&ZsL1mmnn&%nJ*;>cWsl2tDPqT%pR0ujW1RE*@84L}W^~hMNQB~(K_puI#{vL$> zhE8cYZH|6P!`zPbKAnFmnBQ41+){R2U|PbNGFmqm+F8cjHU3bAn*4Ny`kwIILp+6U zYCe}=CmMNg`OOOT2>yJtZiar?R4WQ)-<*>_@^FRv$fFf1fxL9FO*5?L9zV^?uty3; zjmRg|v-%0jJ@&;4^*Jfa^%UB~W<9niD%2mHtx(^Vywpbxm~$E+FIHRmEb!`e(4QCb zN$f!GL&#cl=PQuS^JVqa4D~bCZ%aFus-H-=gwC>SsZNHYs(|I0h8Sp~}AP4Bb zP&O|ETCc4tq)XOWZxc>F$BOfJG6&n5u{M7$Z|Qr7JpFF)FBqlgLde@#6jqq1JHr}iYyV3Oa+ctLRI^9$ix5 zP#?ovTK-$)`#IE&7wup?OaJNh<{bIfjB$Ehr9&NZI@Hc*_1M#T3w}L}2}5rg_OQ`%-)3b_nIE(5Tc zpy!N}+~B$P;cT?6v|V8<9I?7TA~>j*?Sg+gyS?Mp^4)(z?&;8(eovJ$z8-;zBtAIC9QbxCF7JPZC zB#n4?mTW=ttzw+Y9{SvpS@JU0_Oovlwsd+eMJXJgI>S%AF*KP;V%EaG3kJ%|^L zB3}?bgyJ*pc8pEpH9bRsS3hyvTdaLDkf+*?7YI9?mChRURn34tQ?hhz71P&X`=qU4 zMJRLG862!#x}g?$H#=7*8f_~F8*D2(mtYK3+47jR{P#me*!|Srh||Bi7#q@Bh^MQa zE#PSj)@dzRH<_9rJk|X@%KdG}I+xm2{H%t(7VC7#g!NpCy;Zln6=SRwW2_arrnMuq zuwuStZs}|wvlQnNs1Jg+^7G;X^^+;Hdd*{RuEL}1PG@rtdy|Pu)ja5cj;>J63ys`A zM1wb{&&4c-&)(;(a$3*al67LtBl&(=xjWdH9zZ6d!BWu*94C>tbLwUip~pb`vv<1SQ9pPG9ApR2(iF(ftfju^QC|-A;mns& zpC0QzjP*{na&V(s+1UYoyS_m8kzA8sMz7=X49x)cYuHyoe$~ZwVSdjkf96~J|LW9= zY=H&e&-0_+zn^7G0UFarYUy2tJ`#R*jP|q2jB&0D z{anl++ZA4Qg$=&VBJZ%ag<(r!AIm(mO#9QkXB#YQkDo=~b3M7DexFA?JqIQF#pZ*| zcDl)jH_u}S{aSalQhgqOnFoyV?c{LZu}XCZ#Q`^^Tf^2ewq-cKwut=bzFdyJY$!Xg zJqX;v%V4wO41P1#2F=K4JflQu+AhG_5^GeeU7-DgkHA0pP{}x$BO49pqE@^XQ!8>q z@Mqixf5xqf&MlC<@g5P@{L6Apn6Dc#S2tiU3_c)9pP_o$_glrj-{2bT=_FRLJzXbW?#4o{XI$6JvpMuXH)Trvy@XfKE37-nu)0ow(2U{b?`!H;{FnGSY0_SzN zDSD2BXjQa^;jw%L`hW2~Q5()&F4;zMKs1*6vj|s&+D+@ryYjly5vAqf%vmfcI{p9)iDx;~aXA2>VFc zBAyxR9N4OIW@a<2}>WW%o>jflB3h)z~G` zcxdcu|9~HLqTX|Q--2ifuEbu}n}xp348^m~Us+ZLUZ?ajK2gTU=Opm@+y(QwTeCfH zQ#tlWErUO*LFr!7G?K2+&u-Ky?>YUP7UOHy`<28yZU@N)_QWZ?#Vn(Bk{QQx;4hGa zoycpeqx~hUDYJPCM%U>ttdrYb{;b5Kgopjy4cLDxn(t|kDx3G3uuuBcQlB)pV-@YO zHmfD)^R$?4WF9u@vnG01)#M@9PtT6$R^Yj@rOF8=Y5xi4kvE6|{X!9MS7p%07aQOs$q=P{od z^XR>VgXau9mrHX7(}qtVSZJFi8fYHQg;0Ja=HV8z{2Zl0e+F>2C4ljj=alGqD9zwC zwW@7;rD`1w!DimALYM~%cS?2MdCJ=c`zg@^f8{dlM>iGtXPB?NCxm_14w)xeUclGW z`I$)CF6T1?(97rYyyCvc8j3u4+Gi`z zs&_!=@g97u%4;6oPXX#Dp1a9*1J4%OAJcXcbp1K(6I45~7m4*To)e_mmFtB+kk@aN zrtO=d%6`zneGL0*K=|f?zTB4Ams;;FzQztN#dD)tznbG{2z+B5o*(N4X?nj5`!NHB zt7J%#oCy(Q=V z!gNlKY+B&KnXLu3poUA4>G z)c8FO1HjQhXHHLMm;pa%KCebOW2{iW?j$}DO^^qnNuO)vxeH_c ze15D`{!tST#$r~FMT+Nnnr$$|qmK>T+7<}G7HBE31?C73>xb2){Qtj`zD|NV!Eb@cCynjPqU_y zx#BFvlRbp9XC_ZA_Rqow8hk7cW|tZeaoqo1P+vu!nOS}j;j z==r0K+Put*HFho5*my1tHuf^TC)BU!{~+dnoHc}eSofi3s2t6c@FjWSOX7FQ&=}2O z%?bIJz5E63r}-S#AP<$Do7e|H`#I150`_#S#h%VJ*wfj9J)KUyKJM3ao}#`dJu^sW zdEgVLx4y`(gx2|s@1YQ_dd&*mb-J`ac2ZmD{Wrq}8jN{lYbbwiO1JBm(XPA8wyTbG z7VpPn9f@-T^h|5PemvX6wQAKskxk5J*O50{xc1aKvKu;b8+7EgdVI*450a@_;t!t_ zpgrO`*ml?_w(b$Ljj;Hc=LO;suZuUA=yAe-hVWB=!+NjCR$y7c{)zccln#BS zF1Vb|f^C2fxkBN6OqnG^`rHb(>C|V}yValJ?}cYI{8!w2uEP5#p3`t0?z{1qL73nX z{GGtx^9U0>jlbW*U*KyRejWFJfxmHt3H}g&b?t8TO@s-)7k`KF_nzl9oIrh}2>%+w zba_|@==UBOd#}6SgZH=KZx(q7>UkaSbm(yQ`^kreJs%_QWgFb;cKm%$@DWaQ6V4Rd z@XiGEr+G$w@$=_8PZV-ISXPc7gpQ|+@zQg&uj0PSjW8{bW?tNE z!TZr76d{)j@6e;Ujjpe!bbjmeKZHY{$$Qj1lNYAFNIRZEg1({)FJM-#Cgp@}m2rfz zx}QaQgPrE@ux`tT(Ux48O`5fctTu3gfT%I)nEl z(nZe#5qtrEFNWx@@G{I0(q-T$ zzGRB%B|Nhiz(eH?zO*gEmqEcE3`|apmeDvdo|YfsoqcEi5&Gk7KJKwU!24I{@xH4k^Ksuo+`W_!`Hkxb zl<#%7y4RBLiZA2Y5aiop!M6!$jBs%r|^${xv)YZ;AU3;?5#& z=u7#sgMW;76#g&Zv*f!AaSHWDEOE1cf_JW>Y`H5;_2XJCutA_h;9FnO>8}Z#6Znk4 zM+Dw4@D70qfx84=FR)!;i$J%)x4;{^{!-xY3;Yd%cM2R5xJ@7z!cUXFnQ0K%EKmcb zI>A4>_WY5CKm59e^8)7t1|v#*UI>qmGH{~-xBDM^z{N;MebOb@$-~~Ul90M zQTjQNVPst_X+%rz^@3b7r0vBw7@FSQ|Bf8 zn!vXO8udLYzZws_by)^=t3S28NEbw}P_Xs^F1l}z0I)NPm*9r^>{4deVuL}HQfzJs1 zoWS1@_!;59UBYim|9?*6&kB4-V4I{b6<8Prc zTHx&hZxGliFeK1u`+dUS69T^@{4&xjZP8>ln@TISUquhaGr8?!}k?(QubzB%4esb&q2rHa?z?EA=5;bSyQNL)Hm(P(`EN(aB6QPTwqvj>b}naiCBQ zYU|dGk(;^>_4jriirlQ~5#EqHo=KwUNIDYP-`mv{Idrp{m^>QK=Gxgd{hlof{6|z* zMRY2~cOL|HB&AbK$|-wP?nWH@#*@j6x~t-SQ_1Xcd@p1qot=oK;>qsxREpa0N!yNO zu6rt*O{Q|NgX77`$-ad8lqGg>G@Fbi5UKj@$g96gGB`Go?3x50l60q1lrlILKf-90 zy0Ld)Pw%dc9h%-+)t%06!v|Of(*vj#1$w9PcGAgs8VutsS0YC@s>vn$QjCcycFmwF}-VqKBH(l}O-YEOK5wh>1qDpizX<$QK_+t=+Vj4u?&jm@TNBE<>YicnaSbfHThny zMts;3|32ycs&esNz1t3iBaoRP!W}no-&YYm7M~o8Ph{|>;7Z))(o^GVgW7s*G?t54 zkniu^*45v;tp_~xE`tAkNJa%JsPRk;gOf|m`zS&-3dKjk!8*Fj(yfo~Qba)7F*bQD zHl7)c;VpT%ABQ9jAJ3t8e-T`o7>>rLveAhcq~Vtx6T`XmF^rmJw&)1t3d3y%<0n0g z_v9jPW-LtuLQUd+IF^u5z1r5DJ)X(+rs4!tjf8uWleujAI6iEH6NeI~B?6!R$sJd2 zGoLPZxrFg$pj6lR;dFK^H#$Mf!m$L#$Z``yY5)?Jo>0pqW;@3BPo>IHw<9+CSXf7Hq(5uu>qOJJL zMN0k1iiI*mFAO9PQ$}#4clw}un!?;U#G(_7L*yozAWb$9J9bb_+Yf>_$>IccqvE0^ z@yqQ4$)k{|!Suf5_=r+pLM^dGNjCNGR6FaQ1F`WbC_ucMdBKb$f1OC}D71ZiYI2m?*rd7=w@*!iwj;!@v7>0@;pC+1 z>N(KW-)Cs&|CQID#DzUEXm&hbXy2KPWw!H-_RskoTA?xZ*V?vokL-qijU7&c_Rnz{ zdGkF zIc5(&g`y)~aj>*eKs}9;6X~PLp0O+%lg^Sf_&7gHp2|u6y5y7K+;}pV)S=}SyV96| zxVxSsK2!9*u@g!4HERg1yjQTu=s_KEiLuuEWuuh&U9m~ztfN_xFc-uIb=|t#)kDTS ziwbhoDXIbKvBa*i;cP66fe6`p(&(ps0|!C(k>2SzM0V^brUlg%|G*R&P?GZTihrh3DedHkN4|s)O@K&y;w1j8}E)~=zC|RYQS>!=M=Xqojx*^**=wulP>9n z5`w;bnNq|+*q=IvUc(ni9Q#wFY)~Z3TG4nin$%6iiA9qiAnp~~RBF;OXc#WSdZqT2 z$|tzC^M|f09uCV?SW=W4#MO;sJ=pBDr0H+w&OAYVP*9s zkB-HYeQ9Iz=p~GXftrks3u|G}{RUx@KF}GIdOx*zFgcOwkL5c5H!F@N?cOX4JHDPVvLG=yY>J;dg z%to6J;(UVEiM>bBouKc_i__PYO6<#wrL+mYmPX|fY8c7MJ&9T znBI+UAKOMo*)Ga&K9 zW#kz{Lqi6VfK9YXW5Izb@_lMa1u5&DUj&p~@lVwCANY^gB$H<&h^$)2AY8~hQj*;J@D|Cs!Et6u5z#dI|Ntu_7 zGQBZI(uA<)wZ?g!E+?r&#LvD7EF~t>v~JdR>bJN}Y#y4HA$9;cFBIVZ)L1;7kjVmX z)(1w?AZ&DY;L8d|KCLJ*AktG=EZTpEvFa(@h|JIKkC#c^2OX5eY@4Ls6+_P`iCs$W zCpL7<$Tg~G_%LWriXn}#%r!f`u*Qa%VA4|nyM@rjB`ze*m!EeHXS0UQx z(8M?!Wk}4&kWq(;A8EU=I^g`3j_9#mdQ9EV>uvB0>)p@rJz_U?Dn~_hGMClypWyiM zW0;rtE}J~69&vnNGM&w-Hyl{^PGJg0h5t1=oD_>n6BHE_Wl~Hs(oxA!QBhH`&;}S_fZ?N}Lbv5q zX4s~hl!}sSDl$qcDl0V2^IOlFaaX(dz256R*Llx%uCwvF{r#Uc_p_e$aj*4!%*WEr zSTrkzTWgUe@23}8Q{?lJU4hfBT-?a#4q~B9pD7<3@r(WF)VXtbB(+?}oS%|DYi7oR zhxpZE(zDbHV&8vqo|UconS4DVW5FE%pkR#V%QW8^^=#Oa{;L?1W#u~Qcb6S%Y;(yN zDP${8k(I-9%H%PV{C6E&iKu(#&PwOnirZ0jjd8n>4^B86WGp#*#l=}dH-FZAd0{MK zbX-ShPix-i$v|dCiugz1^hFD->Y2)wJax#-n9uWqN*(tT+Btd^ev48vx#MrAHRX*R zt10pHY|*S)^JE`gs7sk4`=FmrHluuI_l<7xf;qD?QRRWt$tG1Cma$`*spe`%vy6jH zvP{|&md%>7at*mnDozZn^F%!|7RIHgPe_@o7B}=iN&Gkew_4zyp0)roFnSCc(fpc+ z_8Ah5^79bVf_&+IUh3QSQ-0<_{tYVmWWbK=g?MwC>Co(!GiO+PRLeKtm;cKd>Npd8 z`}>*T+xGJg-?pDDJEfJ!Pm6EcPnMU`UiXtVN44Wx-%-c&#PR5hdawqlD$k$NS(8&s zum4jz%Q9*C`Z?9N?PsEI+fRn1=IwYfrZTrdPq4v6;3?*&b&&9rNKV=`%OlSY(^{Tc4x3*08jYEeH8Zam-D%v#T zVUuOxZ39h~^pwTisz;i*j-9n&(X3SYO5EH9^A^uv!dWQNl#rRqI^GEhrb*++#V1ZS zO&Y_Db=R1iK7N-{TkhwQXDBC4Oz%`%-VE zb^8upz9Cxb;%}PYy8M;HcbH9GyPmUN@2q)k=UlUA+Ub5@T()6i?_;aX4{m#Z>*(`> z*I!$=%Y0&=J?@(o7j9g!a<_S3?7QV}pBaBu)+>k283(+1U)c_h+q1=a>)yxaO}S?1 z`d_Tx>`{9^+VJs-oxdJiR(0p-;-e3J-u%P0H{`779~WV~w5q$-`1x!5PsSaqX!-G% zW1rr(bnDw=W;MUQ>Adn`kC@tJQXPpJ4} z+KAVt4PUow^Sx)Lm3I}J+=*p*H>bRFdfmP2TKi2~bK=OHs;%8WUbC;HY1&7&1qlbA z+-_PMI4OC5KZY>#Zu6VX>hIT)4~{tJ{Zgy^uY2UZslz{+xPJSB3s?O#^3}tUvwDA) zbm}& zCFg=A&DHHAZ%DZB(+T@uD%g7T;KEExYFH<<9Fy zKI$rN-Bj zZqR3G&s8ZGTUNA=X8{a2Yu}pJZ{s~Whx_AK9{siBz?Hkc%)R&SO|knd ztNs>t$L+IboL;rDE~Mbm3)%;K{M1{AnsgtPxAKi#{&buhPn|h41S#J^HDhNuDcax) z=FTu^z)YAN*fqZR_cMSrImc$bug*7qlI;Jp$@49LCYcX^MlD0K<x`3YeVu&i+e|?cKB?Xs|f^?&Ti@^o?J0`Iv2k7R_I`W%PG@9D5pjOH>)-$Umv^_0KD~U&(&_g-dGRfdYmS*NIWuJGcheU?F?;p&jg}!_FUgyI zpg@=QcJ!;?G`;%k)|bC|`iALGUEdbn{^ai1n9U)RXB@m}_tz8pB_0~`@mS~AIWs;Q zv}Nf7cdrQf(3)d*jK5-|>70))ySK8vqQ&+^h?XCj|@`IBbP+Q}_<^a?LIH!)0C zXr9)$Zses;^_jHdrvrU*&gyd%^Z%dQ z$$4B|KlsxJj=c4*(OlQgNSQfra@ySaX0v+bFZ`yA=ce-^3ywU>Pso_VY0~e_6Z5~w zm-pbNYnROCMVYBS*T3@PwvFdYXD{c?OXjAZ&G@hUXZauS;`LXr^Tr@=3(5E6GZy*} z{g-|jb9kHm4{m>%U&i9h=^3-9FHGU8-=AOgpg*>wzdirW|GO=~*HOhYm|O$A5stWs zyHa!L_?8mO!3Ku=NJ&j`qUAgZQKXIu;(qWIuMo(b2pkLwW+d zfD@W*|1fy&P0A+}&byhp5uZ#L5kniHqu?U0LieMy;l5!?H^JM6^Z9ksEpXTf))PjX z;jod^eFhq)V6vQP@X}GV1L-DsejLvh(P1zFlljQc&+m}il+6yCq$a%sP8uUbHvUQQ zAD9y@KRX{jR{6`%_K)>x`F(%|KAj1Rr6wOI96FAEXJ0d%jhSW=t1#ns`b=t=hsky> zfGyml=94bhO3s@ogd1G|`&d-$$u*DfoW#DVlnq{y$Wu48TuXQ_H;(z}{qTECmZ2Ly zKb^YG>Pg>lqMym4eMX5PPKOz)RAU4u`cq-2lhVRp|-v zW1nt^ryig#?5mrHPrA`xP>_@g-Ax{!P-^yFS-HVkfZjEfj?k!>~zEE)x^UCj6rz&ip8BmIa;eH^~Bg}%V2 z32rH14A1K+ir{HXwp-X%>Ve6)N`o`Y=xcn^;bu(6XCZver<>skpBCkOju(^r@{^Tf zpHDZzq0e)ybmkVg5R>tc1rK9#e(rz;FQ|Qs;DkNIA^wRl*%%AfaUoh%r zRsI;b82S!`%q{rD z!YoYouMK{Aj5s8{3l8k$xaerO8k2pO2fxQ;ANBf%c@>lUCc%N^VJkfCD&&>Ix7s5f^d>#iK1AjfC;#PN(bL%NVWrz)UEHm7k9NVQS#QjaZiFV*3^TBvSOiSL zWSghK3ZJfrA7e&*+ToF*0ou53hdYPSCZs#yZ6g9iCfWkyMhA#IbOP)j$2Rk1B%CuQ zKpS6Hn1ji-%7ZtJ3lI(X$HGg;2Z&a*2`ne$oM%Q) zg`Z*CxQ4lR28blm^I@+^_*1V?xB*Key#OA(pY}(4;L7RBCl@YH4$$V|T=+?f>cZ?}Y>F0>o5wG`y%jK)WsthfiQ~ zPPW6>U!Y9*c;K76i7|8wY<^MoV+$Pf8nI1!0&K(Nywnc29ZF^JBA)$IWy72N>)9V7nG zk#KgWDt|h(d_%sZC&913Bj(XvaK(?*0i6qboCpwIXe0do6z!JHxf^~S6eyz6o$wxA zpcc=`a2VfPP9oh5FVnML4RL6K>o7U57Qjb(1_~=aIq>3(0!1!59MIq-^MX=)mOM?t+g-1&Tz{ zbKr|NQU>&XSUOnk>wvU`!TCc2g^Tn|c){>Mu^$}!DG9C86HBj_gM!&%IqgZnZT>$SIL;2CVv4J8MlVdp! zX8Uvwd=HbyYJ(S!Q$AsEqE9Em13ujh_3_Hb2oo{6?^Jm8c$FRjbFoO$^Wp2hbPo)^ zP5DH_*L~Up&%Isc6AEul2-MCm@v!v{>P%mI;Qv zZiAtdlz%vU(5JIty-zp7rpbZo{uy_P~(#~+qWJPCo3_xlXb&8-HBdC86JWzO z>LB|IrthF$q-Vn0o@5R|Ti~XhwCxJ6)8OJ=j6HNV{LoH$&|dgkDaS(V9PEe5^SiE$ zHKi(vdD4%=X;r>BgcGWjPa?d?rOF=;dp%8`GM|USrO&AGVuKev8z_p%Ckz^%qhHWQ zxcK=%;YMe}TN}v}9S<`x+0KP<_HO1S&cEq!%pPKrHcx=(|6P?Q3_gg-c{mH+@gn6| z$u$5R`;xD%;Bq&0Cp{Nl`ZDc>Ho;-9sCm*1KYNw=i1ZGav|r_)3~OE^c1dr56Amy| z(TVVv!;~K_TJV3D_D3hfE8e3W(S6~{R@#3R$A!5c5ZmZ{81)hJFFFRse!`eS$H7&Y zcFhLg#N=3RfnRzl13q1F*JrdL+5zAFT=}%Y^e(>0ToDkYuJPdafk7e>pKe$b6r`?c;oJOfg}jDug>M80X>+UxJ`ob6#i1QO!Fq5q zChhQBOvc7>_)QP;A3~NsRmbgwHT@mOVHoRl$#you z?N~e74(|^S5?$z2cmflT5ldGDi8joLZig3Msqznl(N_hDzNE*(9hiJBXNUKhs3(1z z3L7ywFS+3)ekWJ9TN2#eCrFDWH{97bNSMjT0hje7e{>FP?vD@W^cMK~H9^`np$9fx zOFMI{y)gJXm47c-H84mdv2Q(WyMg^}lo|d!I7noZehPj$EJ)bVU9e-gDo+=j6{~bQ z+Q-!3EM|wq<6xP!jY3yzbC`$yMshJJ`FH1Nwv8Fesd3TMf!2L;JzSjF3N;Q zFxk%SFllO#aN?5;KgH_N9kAE^^dqqm3hkKe3n%;;izGc^dXRW4nLfk61zt8INO;gD zSTKk9L>Ix?Y4|@*9bw_zAQ6YQ!xayZFa44WBhx7d>Ctd8Cg;O!_{IY2MY;#BW^Jh) zbRL}Y5XVJNh3_oEAKeOfWzkP)2VC<=kmyF|!-ni2E&lgH$D``FE;wN&{gKOj2w%zx z5>e>=(EXTd=O$SEIAtc?31_V#A9OnW5tG-Vr{Gg-eeDCkUq}4lW60w;(x{6QF4^Gg zUl_lUw!p^%5Ank|4sGYBA{u(P1Znp>9WZn&Wx^*MUSCAKqNCxCox~E_4!7Hb zM8q02G?y?oDO)_;<0O7acSBDt@qliHN9(C0I`wJB#WN~qdclLw(uSma;Bzk!2b522TEtcw?9<<+X|N)QEhI6&$g+U z-wS`mRy#`V8%cj|S*OIywhV3uFx=bSgZe(}_ZKJ1k-ylxDO;u2sZ3L~=g2 zz-Rabz$wxj;fx;mt>79GUT}_1M6TyL3cl>qO|ZJBPQ;Sl0H^VL^3o?2e$H=dCZapx z>#X^hiT1#&FQz=`2$;q1G&Z1ZaL*Mw(TaA%lxuZ7cjmb8bfiv;TipPD|8*cAKOhc` zu*VHLZB8@7^ZAiWd5#E!cVhC~ngk#6>1(nzVXpg4+ zq&s0NCgaTuLx*r|=G$4If=uG%xzN*W9*l&}{KN6l-K>Oem3iGy6R&)V$?;w^o@k|3= z{G?9Apu^z-ED3Eb(uv!5>O?9!5suwO-=P!W{Uth)k4}Z}S19d;_d8WNQ{h)t^cOx| zaBDSjBJ*)EUNBjg_!{!ArL9O$ho54yk2>IvIvsDY(04HMX<`u_4JSTJ-=UM>JD8lu zTH%of#sab34!6EQJK$3U-)*E%(QWXy-8${Q(gL?&+O;wCubuPzHFD(IIsM&~pM53G z*nYI+TUZO)3;k>3NO}%1_DPq_ex0?6w-6_AS`+Pz{{5OaaxENtGx?G(xf@GFyJ6+q zw2SnIrdFM>p`+l`PlzY96^`(#Jb%A_ja=7eay#Y3M=~30L;rq_8o72&##fY+bV(}~ zUO+6tiet1jx*pE%q7BjM@Qd%6lhK`U`wzZ;ftDXtyd}Y>G1;e$aPLn#VZ(nvJbgm- zm+mCv;y2aTy`U{HSlIE&g-b$$g&S>y_2&d@`!>S4=LL&4(yegr`N3Kl@}SiiEDT#I zGfcfCm}?Zu2_r5I7BT23IHh+m_xhY?B`?Ph-2kIa!6FMC3yb;(YtQ!_a7JXX$R|Aw zHnBEX1KI@@!*F!E-Itk$KDn z_s$_7()UBtT*`#*f&(5<`A5Tm`S>wU8sJh)UMJXK)52iw9N~c%+)(VqU`X@sa!hbD$+Z#2V0ExH&6W8!v@$;8IoQXn69G zV6h(`ksT~jmIZ6$E)AZvp=J7tVBuUDEOgt6B{+W-?Z(*5ghh{0f6^WB^2dX<=d^v{ zDokF}=E2cx=tq1K;H*M90DbPtd>UXlQ(rdKD4_ zFl-lnjZT2auxRvgc+FGnOTR?H8yvyHOnMAFr<{I78{y8HVC`AD0|wWrWA%cWm<^v? zxS~E-JICe1glB`b_f;F73l{61r|!D2Qh>yi$?!QA9|94>u>K1JK$r5N}EtVPAA8TNQrX(MdIWDK{%r``+Jt{0Eeq zJNwFOJh)$K_HBkUj?&K5F%33X-d+#l7k^5G3XF*fm!fvYj;lLvd9qD-WR!iY2U7di@d zVe%Z;4a)*TwCidYJQy4zbWbq9!4(G9?WFSrhq zc^1I;u_S!F@HZ?Ot>ZW4|Axu*2)GQB*J(NM5SB)IEBuP}2CV2V*v4;a=b+nR6~8rH zfUbw<@f*Rij-l{d%uf1oIP3zIZib!wu6w;qhc{moqK#`ad=it#a=_~@4bkrJqF^BF z)oODr9MwBSwBQpD=Uzr$Xe-=|C2-tAcm->u$olq$H=9C)c#>-XXu3LtIeImA07|w&^uMH8Y_*h`bbs-`f-3uj8+hYocfz{{;m^KP zVU^U(jrDNHVEjq9!zs}rqD%U~{X;^8p@?w-HxH#P(1q}(VIkUhkA?S-r2L!Qg}2I&nLHyw#3LCNGXg6Fvkvi_Azu=}j z86)UI_{${51zJoF5ht-ksS`s)9hQo2gw<0hH@X3CyqnlV7sCGc(6;DE*nu^pyWmy# z(az`y7&?`9Mu)>u(L+$h#0gRT4&PE%)MDKg0%pp zj)GpF?tq1}RJt9W^l9U4ViuEQ%>vJxL)?;QD0~M?L$|_hX)3)4w#^L@nWVSFS05lg z(arF)bovF|0Yev2R&+RgbTMs<&Vdsj;t%GqR``=~-~&QtE{+grV8A zGddg=KB}}G-nU%oRQQuk=~M9S6_gqOR_IwpUq}rveT=?9o8Sga&JP9f>DA0{q&LFX z9uE<2bTe$tWq-66TGvqb<&+Jc_G#VP5OL8u+83X2*gsF{NO_l#sbKHz zAtH`_P4JgOj)xXILd5JR)woNCvx?Mwn-0(0Nvz@%3ZKMe|2kk&32X2y<$4n4V=^8J zVQ4A);vWtRecBEuRM57hC&KG1sRKG1p26H`Lsf{V!J5$x@VaW^1|0=o!8*`Qu)q}} zy3s}O+*UoFykrmO z7j!s0x|jGwcfy>PC>uHtzWHj1Xh*le0k1LMN~jAwjLB=iHkfcg&7X}SOnTG`G(R_u+gX8F#aDZ-2z*E+6&W~ zRk{@hzQr6xJ_hK*WSlp^A218)-EinTvcEZ(!P$psXLLH;d6=<`cEIB;lnH$bUiqGC zhraLw%uc!&Mz(ScbTr)a0dqCl4GTY{uhDjxbwp_!jA~QkCD=HjMsE%{j5~&d(WNpkHUc2UugHH#l z^hQ{%(+ej)4RBnrUVBb!flDwsKiHrb+lxtRwa zUYo=Cf(hrc?t+7H4Oe3_&qDYFYaB(8ZigpWn?a5dae-cpx==4-NsosfED7BThlJ|2 zb3`n>;9|Y7k{$-PT%s2_=pwixj5?xo;lAFK8QlcCFQc4jak*Y>!{pps1P6rcwf>5R z)vWm-^J##6uTsZ~gsFY?;yCH)@Q(hhn(cWMi;=0MB;?`CktM2w_dc7-WMKDQe|j^ zkKapundkH2ylJ#2KAG^|>3R`bK}^CAlIdf#7cP8&ene-%d(tVt^nsoX`T*SuKUzc` z(CzTIO!}H@Z{1?O*o?{ZTFgUwv3Lo6!Fe_t{w+)OQ3UiXrTj756T z^6A{57pL>pxYljbiP0)c8Sea=^jyx%$Mm8cllNsVxU-X( zspK34SAC<`?hEoDA7aqvA_E-IMQq>`4dcIO?xGA9IPeF`DbwLmOy<)GD}TfXT@Q~P zr(WpeFykjRpJc%bOg`(Vhx(sYx)Js{L7U(o3Ew?QJEA+_gwvFVdz{>B4ZO#1(DvOA zf4<%z^6@zZhqCsIoFB|Ek2PSNq!+;bn2bX+YrU+;600buT>mA?AhM)}53|Ng4%!B{ zW3p_02N}dPOz!&v95~n@T=?X~8AQ*C2ClQ1+b0>sEmIAm6T|F-T~tuG>9T}QkFry z@|Zz5(AEmppTIome7Ff~LEB+5){2gC8pIk*UPm>+!IiAdkwX6P6`wX%8N`K{le$E~ zZO@S}`_{uQtO+fiH;4(C7d;s+z}&RY;zrio!OUqrMGbrt>qZ}jKVp`-J;ez)bvJA0 zKES;#%<<{9unTJrznSSVlvOe@Fz@`^H(^EHIbxGJlyEhTj491^pR^O$#s&XmXvEGNi8YYN0M4n zu8kzMq+AzCYDu{!lGKuNJtV0mHrD({gR2fY+3dTtDaJ9PeAj}6sJ}?>!P_PAyq0Y4#Vm5){qJL`;Kpb$fKMi&eNyd=I2Q5RlY~Yzd!#)bG!iZ%M=U6 zT(LmRA-B0AUCbiq1!A_yUeAcZ@!T(`Olfu?4 z?JyI_X(su~Uq{X$uS{Xmycgn~L3#=)b5RTMzE|`nFaNRQ$YGJT?_7NU>BX8atokf- zd9TD`iN!Eoq-w9;#H(^o=^Lf_Mu}^+<4w})BHJ%hJJtfqnEtz# z`R~-h#!>jz1^La_|M~k?_iM=-#Xzq3(vN|KSvASrPIb)qE?ax z96jAvA{FVZ?WU{$*MX>&?%)6YKiL9a&TSOjP-(0*RYp`sRmN1BE0Zck7uO5{yx=f6 z><*{HR-RiPUy)pqR^hI0s`ga3R(q>Es=KPYtA)$pGP=TCCRcyW(9ISCT8) zmFBX#vRpP-t}EYF=(4+q}5n!vTAHKxi$GUg*EmXXH9)gV~x9}sm4>&TGLh2T_b7@wZ_`8T2pOA zZB%Vct+_V7)>4~Pn_Qb#Ypu=E`TdyL&|kGEUwN%mxWn%!#8vfJ#r_I!Jx z-EMc<>+Owpx4p^kvA5d2_6~cOz1uE|4aLUduwqkjL~&GcOtHB*zSvTnRGeI#R%|WK zDz+8p7Uvfi7Tb%R#r4IF#qQ#!Voz~vvA4LRxU0CkSdA`2&gfMA2SRBa?tHb8VCuZs$ zZimO=b#ysInX$}N7FA|0vy>&5S<7r?`DOO9`Z9N!r_5W{RVK=f<)-qea&x(*Jh|Lj zZY$3(x0lzKyURW0-tw+;QDLkwRYX;oD=b8ywZc}BUtzDPuW(m*D!dh46~bwBnw(Ki zv(w^Cc3Pb_XTH8|utdMmpsMU}D2 zR25ZauCi1mS6QoURryu+s`@H-m8Z&E)m0^`jn$^=sA_Yyr8>FVT5YS&ueMj$SGySp zUdDhR{!PTbnYd3T=555gomh7h=U!r55Z@+Z+e}<16Vo>0*-k9GiDNHuEQnzf@oOe_ zlZjg!F>5DY-NdSwI2FXGiTE@Vo5{qbjhM6(k8WboOB@Ps4{=@SR-If7#<;wzFkgJf0Yo*ltn-}nu4 zMmS^s!|@x&naRx9&0^#_8Mm#BS_5M?h7p^_cr9eKazGFF) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Provisioning/wiminterop.dll b/newton-cn/bin/v1.0/Modules/Provisioning/wiminterop.dll deleted file mode 100644 index 539e84a493d2041b7e5f53bd9277efbb5f1a32a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13312 zcmeHNdvqLUb-&-t?Ce9f?3H3^9Xs*FudHQRk!JE84Ts$4Y=M+B}H?-eOvj1|;0fK*rp%B-RH`OB9E>eJ{ z8gZ(0jZW8nnAA?#T-1r#1pWCb1)q#>;_MT|qgR z08@NB0)+F^g}dR}UJJT`c?OhyFepOr?I3#4A(GslLHBIz72P&njmG$&G}4QS5=JDw z1nwnlSf#lw7n2F<|`F`DJ8@CGn z36gX>(54`2gy^DZIt9+A=4h}AycPa(reZPScG~H4K`t^*aeuLN8s3)CVPbJxYh>f< zxaJ$D*z;th{cstLZGR;c)-%}}Nk$|~_U5k}@vp`)2I=!4^v?&Vz~qWqOiBx5qNH4} zq~(WbEs~~IbgOCwqYWC`-;EmSCNz7pgLS!NVlj&1L6>L+BfSb@*lO)IXcT34(}|7Yv|5L1ZJbtXk(e9pj=)H-;}n^*uwfb2ELIN7h|Ho?td8@IQ_STj zv-v6fgSAF6*0yF7EJb&mBTNroev<8X!LV9)x0gU^u!1Bg(b0-p#iZh5Oa?BzLK4|b zCvw2ggx#?k?x2XJLwUX!Rutxo6{09d43I1-=B)6oSxi3m9l6E&5J|%$dzSS&=Fbnv z&ptm`A)FsC7^g7%tj@&-m$_}U%`$16VzcwBpE-@yFC7mWr!a%9O~yGL8sj=LC4R)3 zM4T*cLkd{kw9}i>iPqVG9L>|QI%BrO)AUGPeJlIaE?A)W(vQ~E+QSRB<^N(1jq>lJqrgPsakT;u)g+T(XZQ#CHV(Xh`gFw3PPng!Jh4CbxZ=f%D9>8sPT5XpdDCgQO!exFKuZIYAp>LLr*>k>(vQp$hm4ESHc?lIh3oT5h^cKLk+$xZJ~|q z%O!@X=i4^;0Qrv5t9PjIM2b426I;8wyS8+1>4BVg!aU$gOxiU!6WxaALkZxcmB1@b zmRVyf4tKdIcn3!5U08kjD79wiflNQ14}#`{$eJB_e;g=ZSa8*$tKPpV4uoD%TL|rO z79%VuyfzSaIl>xB`*EWwVF(CkR*|6_9#7t%DUKVi$XSfr^UeNOajbK=ei30Bkmir;9pP-wmlDIj75zKJ=Ccv@UxClja-KL7iXOo82ebnWrW6YErs$4n4{+9A zN|E@E=rzdaQlVA|6{B+qFLsniiU*MQCit(#APxY(96kJzF#xzZ(ykP}Id(3fomd69#Abd};76gYs31C>iPeyP%o-ru zemAXB2j{*(>j0b_-%k&~u^e8}WUriOyN0+pR!l zG|_`X-9m@s`_&@)k(R-i*Qmu5#R(Ul#qN)eLw89?eNL$Mka~bvwn|fIcNElRnxf|o zn_B4lP%|F6T(!{aLuz$m8DzJGR4S2It@Kt+!Ac3#SB27%}H|w+Y8!Tyyj`=NV&Kol8qa zb}#*d@do9vNMv^!cc``W#!z;TagP#%B6~FQ4z-@X7|K2$xliHz7Pk8py-#(J#mgVv zOE1!gR41d-E~Oq)U9>-xtxz9V*tH5 zXX71$J^`;HwAM7RVt!gY`HEO$-%Rn-3O)P`_=+AA2;4E~F<8?agT5v>>ln0CVqr}q z^hfJ|M?CzB0+!-G2HxYiYe^u zJj0d)Ca}{t#g<~{Xo@YPZG!g-%m}*-DzQgbO5kBzKgym(jU@CP`96=_a@c@cE?BPm-PC`wRD5nyn!C4 z*J96nk1-BTE^(ZetNX2!uyA+cR&aQ&O)7@V)jPqzK(YT1NZTGYn|KI2#8c5fhyEL& z|2FX4<6nm~^i(=yEAWoiuf6z*GazXkVQxX-0oMDzRf0eX-gLEavv&(mMhSLqw{ z9aIQ^5jHSyEX zEj7W8fwz|^U=r4Fss;}g3Z8*AeFLEWjm3ObCoqcpDGc?vW zJhX3QV03hB@9^FM8l5Ru+(K7om=5gC^bPk9j16Y?42%u+j_e*7nXkX+x}nkeoWo*B zc!PU-caCND_75DMud?Sl%@Fy)fsxGMwR9qzpK`~>Xwt2W9Voj&f3}jPv8gInC{Or7 z-W#V8H=Cp0T#m*H{#3Ez=BO`lvlVyH%ex55CH_@{GMPel(&b+F_}N@Yc!dTcGt`$Y zRi*;BCVUxP%=y!0Ega&WY8DR^rRQ3^d33*5Zj@$*M%~H|->Va7guFCTYr}HvHjbVnGrDJ>DY4JT|jCq{)kQhPIyn?%brc~vy3wgg>BfUZ+iGW#m zFz^fW%=P)jO4cj7LC8I(LzJ#~)OnQaH9&`8wN?={dfY3C(oxo&_6oI8W$xZ=0nNQa z4d3e*T|$~lfm<$nevuuLlI)ubIMsbqd9E2MWh=+_`(ee99uhRH_1il!0R#I2?*vMd z4h0@yzdJrPImrXpTfvL%_!M~P>Y!Kl=JEDt15AQJ{OsmV`@!+La&Nip7RK{4?Cn7} zVE^jEe)nh=&J97s4eIQ{e0H*2Cpk1PpRJ(jh?~!z6s$pB?P6bm^@Cls8GrlXX*(&F#Z@)m984SjdUglG7(rUDi04 zYTR1&NqeDcby`yzJ6i1kH71H&<8GlOxVR=*f!7zovb-7yhN8w&!ODJ+4MLtQAM<%w zs2em&9OqCrC?Ct_xv(d*C9f-&7aS|U8~7z5$MXBKC@>nE)=$nx2ByLc(?D^m&`{0| zGom^MJMpcBhe#@@${cZz=G_UdF5MW2o*SO<`t$j{eq|8R<_1nqxFum`iYNjvhmi}! zR$U@a6*2MatOLdDROOf-pfqxNj@4zo!Q>P#m37W&B|C9^_=FoA&HK}hZ2qhyWf^#7 z_{v$^@5^}X_d`lnVo>3X&lHdPbRF_XL*7K-m;Ixau5jJmcMOY0R|YE|tb$nx6HS>x zKPY4?m`f+ToEu;~>g#l^SgMOhh69z7Jp^SL6&K@$C99F*l-G0QP&?$)b*O}kc)ih%2kEx z)C*%Ab%PTgmb#aV^*ZAQHMw5=kRaZp%cM7oGL^F@+&(Pmli;BZcBd*eF^|&ASTR>y zT%fMEZ;_CUokqibN)s}Q8kMP~(QvKgA#(>#pkz=wWx_b|qRq3n&K$U5Dx0r`*XQTM z`YvNRFMC0?3OThy=)ui#b6uGY^Cx6vWmh1CCW{=&N`**d+vv?tXJ^W?f`zCq9~vJ2 z9n7iPgc@6f>16@14r$hl7Da2^6lmzZ)SJuU?MX!iYe{dVEDu6|rgrordoY?XyXwdA1jcN2XBfZwOreV(& z57;vM&?Ws8fUysG;pJeJJ$9h!qc;aswdXE`_t*glvIs(}SD@qo_rc>34pD}NgyTUc z05^bXHrNI35a{F5O_`=3VJE82Ou$AUyb0;HAMbj5#1Xc^nk9Lbffq$1jov(@VG>qL zz`Ec;9{)J;Me*h^qAAmE;IJEfH7cCc*J=clq7~@XS3P2ke~H>tb2JDzg{zle)I(38rC(<)3pS=TBmhO zJY6_rJaJwzkCPdxMV>^QGoDyJY;wdt>^KrFPiUPv2NlCT^7!d0Z|s-n$W)EbwyOP; zw@?h#+>WE2p3IHb>Wd67DZG@hk5!8cjiOY>&_Wq!|2d{c`*m;6lKTbgj2EqXob@`Z z=e@Dwsv}nQocx76{O{RZI2*6RHz?Hg?uGhe|IgH?_H=$7ac(iUCw_aj7V>#B`+LoQ zwvRLAy_RwBw{3AD-=+Gn#jXjyInh?J`hRcTU;p6Eci@lDEJvxB>5z&5NhXYGo|SXsl%|zQq|S*r1l)NYse6Y-@@}0JYGH zs${1bRru35OPv>qrD7nOamNiiZbz+DDjq{`F)M1M7{nMDF*|C)QYQ9^8?QgOeCyM< z%Xc$NAqN(|9^=n=7%5$&~GwDwRrsladCE8NzJFXK6dt9LKdZ6(vhh&T)#< zl9FsR1F955#3vA6rOgyng}`X2SPC2i96X>Jhb5!AId0&IaflgEG*T=COqpqFj-~iw#~z+#Kfpx%k~@!3Koy%Cxkn8-IJy)7{GCDXXBpuLFT{P*Zru1|o5qX({-E(18SNi!x&1HpT;6x@?mxIKc=(aIB>(v; zzk^rbyGyz8#uoq6xc=Kx{9WJN{GNDV3FofU`K-4K_u(T%ec6cxQ6mR9 zakhcq2YY;8;i`@YgR2(c|l;wB(pdh@CSyi8Clp))MD@o42iyh-rL<#7Jt_n=oA z*EA}dV`JNVhV${R!+uuz`t^}d)b$s~QF%4g=WWhwzl`hreqTPiuQax=!f!VCRS11^ Yb_()-$S3$S+tIbc{r~^VgF0gh1 - - - - Formatting For MSFT_ScheduledTask (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ScheduledTask - - - - - 46 - - - 33 - - - 10 - - - - - - - - TaskPath - - - TaskName - - - State - - - - - - - - Formatting For MSFT_ClusteredScheduledTask (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ClusteredScheduledTask - - - - - 16 - - - 33 - - - - - - - - TaskName - - - TaskType - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask.types.ps1xml b/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask.types.ps1xml deleted file mode 100644 index 128c40b..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask.types.ps1xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ScheduledTask - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.StateEnum]($this.PSBase.CimInstanceProperties['State'].Value) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskSettings - - - MultipleInstances - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($this.PSBase.CimInstanceProperties['MultipleInstances'].Value) - - - $this.PSBase.CimInstanceProperties['MultipleInstances'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($args[0]) - - - - Compatibility - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($this.PSBase.CimInstanceProperties['Compatibility'].Value) - - - $this.PSBase.CimInstanceProperties['Compatibility'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($args[0]) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskSettings2 - - - MultipleInstances - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($this.PSBase.CimInstanceProperties['MultipleInstances'].Value) - - - $this.PSBase.CimInstanceProperties['MultipleInstances'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($args[0]) - - - - Compatibility - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($this.PSBase.CimInstanceProperties['Compatibility'].Value) - - - $this.PSBase.CimInstanceProperties['Compatibility'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($args[0]) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskSettings3 - - - MultipleInstances - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($this.PSBase.CimInstanceProperties['MultipleInstances'].Value) - - - $this.PSBase.CimInstanceProperties['MultipleInstances'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($args[0]) - - - - Compatibility - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($this.PSBase.CimInstanceProperties['Compatibility'].Value) - - - $this.PSBase.CimInstanceProperties['Compatibility'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($args[0]) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskPrincipal - - - RunLevel - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($this.PSBase.CimInstanceProperties['RunLevel'].Value) - - - $this.PSBase.CimInstanceProperties['RunLevel'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($args[0]) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskPrincipal - - - LogonType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($this.PSBase.CimInstanceProperties['LogonType'].Value) - - - $this.PSBase.CimInstanceProperties['LogonType'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($args[0]) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskPrincipal2 - - - RunLevel - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($this.PSBase.CimInstanceProperties['RunLevel'].Value) - - - $this.PSBase.CimInstanceProperties['RunLevel'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($args[0]) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskPrincipal2 - - - LogonType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($this.PSBase.CimInstanceProperties['LogonType'].Value) - - - $this.PSBase.CimInstanceProperties['LogonType'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($args[0]) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TaskPrincipal2 - - - ProcessTokenSidType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ProcessTokenSidTypeEnum]($this.PSBase.CimInstanceProperties['ProcessTokenSidType'].Value) - - - $this.PSBase.CimInstanceProperties['ProcessTokenSidType'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ProcessTokenSidTypeEnum]($args[0]) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ClusteredScheduledTask - - - TaskType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ClusterTaskTypeEnum]($this.PSBase.CimInstanceProperties['TaskType'].Value) - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask_v1.0.cdxml deleted file mode 100644 index 1ebcf31..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/MSFT_ScheduledTask_v1.0.cdxml +++ /dev/null @@ -1,73 +0,0 @@ - - - - 1.0 - ScheduledTask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ClusteredScheduledTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ClusteredScheduledTask_v1.0.cdxml deleted file mode 100644 index 3e11c9b..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ClusteredScheduledTask_v1.0.cdxml +++ /dev/null @@ -1,391 +0,0 @@ - - - - 1.0 - ClusteredScheduledTask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask.types.ps1xml b/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask.types.ps1xml deleted file mode 100644 index 50e9272..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask.types.ps1xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#PS_ScheduledTask - - - RunLevel - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($this.PSBase.CimInstanceProperties['RunLevel'].Value) - - - $this.PSBase.CimInstanceProperties['RunLevel'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.RunLevelEnum]($args[0]) - - - - MultipleInstances - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ScheduledTask.MultipleInstancesEnum]($this.PSBase.CimInstanceProperties['MultipleInstances'].Value) - - - $this.PSBase.CimInstanceProperties['MultipleInstances'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum]($args[0]) - - - - Compatibility - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ScheduledTask.CompatibilityEnum]($this.PSBase.CimInstanceProperties['Compatibility'].Value) - - - $this.PSBase.CimInstanceProperties['Compatibility'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.CompatibilityEnum]($args[0]) - - - - LogonType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($this.PSBase.CimInstanceProperties['LogonType'].Value) - - - $this.PSBase.CimInstanceProperties['LogonType'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.LogonTypeEnum]($args[0]) - - - - ProcessTokenSidType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ProcessTokenSidTypeEnum]($this.PSBase.CimInstanceProperties['ProcessTokenSidType'].Value) - - - $this.PSBase.CimInstanceProperties['ProcessTokenSidType'].Value = [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.ProcessTokenSidTypeEnum]($args[0]) - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask_v1.0.cdxml deleted file mode 100644 index deac266..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/PS_ScheduledTask_v1.0.cdxml +++ /dev/null @@ -1,1348 +0,0 @@ - - - - 1.0 - ScheduledTask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ScheduledTasks/ScheduledTasks.psd1 b/newton-cn/bin/v1.0/Modules/ScheduledTasks/ScheduledTasks.psd1 deleted file mode 100644 index 2483a49..0000000 --- a/newton-cn/bin/v1.0/Modules/ScheduledTasks/ScheduledTasks.psd1 +++ /dev/null @@ -1,52 +0,0 @@ - -@{ - GUID = '5378EE8E-E349-49BB-83B9-F3D9C396C0A6' - - Author = 'Microsoft Corporation' - - CompanyName = 'Microsoft Corporation' - - ClrVersion = '4.0' - - Copyright = '© Microsoft Corporation. All rights reserved.' - - ModuleVersion = '1.0.0.0' - - PowerShellVersion = '5.1' - - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390822" - - NestedModules = @( 'MSFT_ScheduledTask_v1.0.cdxml', - 'PS_ScheduledTask_v1.0.cdxml', - 'PS_ClusteredScheduledTask_v1.0.cdxml') - - TypesToProcess = @( 'MSFT_ScheduledTask.types.ps1xml', - 'PS_ScheduledTask.types.ps1xml' ) - - FormatsToProcess = @( 'MSFT_ScheduledTask.format.ps1xml' ) - - AliasesToExport = @() - - CmdletsToExport = @() - - FunctionsToExport = @( 'Get-ScheduledTask', - 'Set-ScheduledTask', - 'Register-ScheduledTask', - 'Unregister-ScheduledTask', - 'Enable-ScheduledTask', - 'Disable-ScheduledTask', - 'Export-ScheduledTask', - 'New-ScheduledTask', - 'New-ScheduledTaskAction', - 'New-ScheduledTaskPrincipal', - 'New-ScheduledTaskSettingsSet', - 'New-ScheduledTaskTrigger', - 'Start-ScheduledTask', - 'Stop-ScheduledTask', - 'Get-ScheduledTaskInfo' - 'Get-ClusteredScheduledTask', - 'Set-ClusteredScheduledTask', - 'Register-ClusteredScheduledTask', - 'Unregister-ClusteredScheduledTask' ) - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/SecureBoot/SecureBoot.psd1 b/newton-cn/bin/v1.0/Modules/SecureBoot/SecureBoot.psd1 deleted file mode 100644 index 5590ed0..0000000 --- a/newton-cn/bin/v1.0/Modules/SecureBoot/SecureBoot.psd1 +++ /dev/null @@ -1,18 +0,0 @@ -@{ -GUID="{a5bd98e1-e44c-44fb-b88f-5af9bde66fdf}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="2.0.0.0" -ModuleToProcess="Microsoft.SecureBoot.Commands" -PowerShellVersion = '5.1' -CLRVersion="4.0" -CmdletsToExport= - "Confirm-SecureBootUEFI", - "Set-SecureBootUEFI", - "Get-SecureBootUEFI", - "Format-SecureBootUEFI", - "Get-SecureBootPolicy" -HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390823" -CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/Smb.format.ps1xml b/newton-cn/bin/v1.0/Modules/SmbShare/Smb.format.ps1xml deleted file mode 100644 index d70dbbb..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/Smb.format.ps1xml +++ /dev/null @@ -1,1220 +0,0 @@ - - - - - SmbClientConfigurationTypes - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbClientConfiguration - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbClientConfiguration - - - - SmbClientNetworkInterfaceTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbClientNetworkInterface - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbClientNetworkInterface - - - - SmbMappingTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbMapping - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbMapping - - - - SmbGlobalMappingTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbGlobalMapping - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbGlobalMapping - - - - SmbMultichannelConnectionTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbMultichannelConnection - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbMultichannelConnection - - - - SmbOpenFileTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbOpenFile - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbOpenFile - - - - SmbServerConfigurationTypes - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbServerConfiguration - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbServerConfiguration - - - - SmbServerNetworkInterfaceTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbServerNetworkInterface - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbServerNetworkInterface - - - - SmbSessionTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbSession - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbSession - - - - SmbShareTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbShare - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbShare - - - - SmbShareAccessControlEntryTypes - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbShareAccessControlEntry - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbShareAccessControlEntry - - - - SmbConnectionTypes - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbConnection - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbConnection - - - - SmbBandwidthLimitTypes - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbBandwidthLimit - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbBandwidthLimit - - - - SmbServerCertificateMappingTypes - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbServerCertificateMapping - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbServerCertificateMapping - - - - - - - SmbClientConfigurationListView - - SmbClientConfigurationTypes - - - - - - - ConnectionCountPerRssNetworkInterface - - - DirectoryCacheEntriesMax - - - DirectoryCacheEntrySizeMax - - - DirectoryCacheLifetime - - - DormantFileLimit - - - EnableBandwidthThrottling - - - EnableByteRangeLockingOnReadOnlyFiles - - - EnableInsecureGuestLogons - - - EnableLargeMtu - - - EnableLoadBalanceScaleOut - - - EnableMultiChannel - - - EnableSecuritySignature - - - ExtendedSessionTimeout - - - FileInfoCacheEntriesMax - - - FileInfoCacheLifetime - - - FileNotFoundCacheEntriesMax - - - FileNotFoundCacheLifetime - - - KeepConn - - - MaxCmds - - - MaximumConnectionCountPerServer - - - OplocksDisabled - - - RequireSecuritySignature - - - SessionTimeout - - - UseOpportunisticLocking - - - WindowSizeThreshold - - - - - - - - SmbClientNetworkInterfaceTableView - - SmbClientNetworkInterfaceTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - InterfaceIndex - - - RssCapable - - - RdmaCapable - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.LinkSpeed - - - - IpAddresses - - - FriendlyName - - - - - - - - SmbClientNetworkInterfaceListView - - SmbClientNetworkInterfaceTypes - - - - - - - InterfaceIndex - - - RssCapable - - - RdmaCapable - - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.LinkSpeed - - - - IpAddresses - - - FriendlyName - - - - - - - - SmbMappingTableView - - SmbMappingTypes - - - - - - - - - - - - - - - - - - Status - - - LocalPath - - - RemotePath - - - - - - - - SmbMappingListView - - SmbMappingTypes - - - - - - - Status - - - LocalPath - - - RemotePath - - - - - - - - SmbGlobalMappingTableView - - SmbGlobalMappingTypes - - - - - - - - - - - - - - - - - - Status - - - LocalPath - - - RemotePath - - - - - - - - SmbGlobalMappingListView - - SmbGlobalMappingTypes - - - - - - - Status - - - LocalPath - - - RemotePath - - - - - - - - SmbConnectiontNetworkInterfaceTableView - - SmbMultichannelConnectionTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ServerName - - - Selected - - - ClientIpAddress - - - ServerIpAddress - - - ClientInterfaceIndex - - - ServerInterfaceIndex - - - ClientRSSCapable - - - ClientRdmaCapable - - - - - - - - SmbMultichannelConnectionListView - - SmbMultichannelConnectionTypes - - - - - - - ServerName - - - Selected - - - Failed - - - FailureCount - - - ClientInterfaceIndex - - - ClientRSSCapable - - - ClientRdmaCapable - - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.ClientLinkSpeed - - - - ClientIpAddress - - - ServerInterfaceIndex - - - ServerRSSCapable - - - ServerRdmaCapable - - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.ServerLinkSpeed - - - - ServerIpAddress - - - MaxChannels - - - CurrentChannels - - - - - - - - SmbOpenFilenTableView - - SmbOpenFileTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - FileId - - - SessionId - - - Path - - - ShareRelativePath - - - ClientComputerName - - - ClientUserName - - - - - - - - SmbOpenFileListView - - SmbOpenFileTypes - - - - - - - FileId - - - SessionId - - - Path - - - ShareRelativePath - - - ClientComputerName - - - ClientUserName - - - - - - - - SmbServerConfigurationListView - - SmbServerConfigurationTypes - - - - - - - AnnounceComment - - - AnnounceServer - - - AsynchronousCredits - - - AuditSmb1Access - - - AutoDisconnectTimeout - - - AutoShareServer - - - AutoShareWorkstation - - - CachedOpenLimit - - - DurableHandleV2TimeoutInSeconds - - - EnableAuthenticateUserSharing - - - EnableDownlevelTimewarp - - - EnableForcedLogoff - - - EnableLeasing - - - EnableMultiChannel - - - EnableOplocks - - - EnableSecuritySignature - - - EnableSMB1Protocol - - - EnableSMB2Protocol - - - EnableStrictNameChecking - - - EncryptData - - - IrpStackSize - - - KeepAliveTime - - - MaxChannelPerSession - - - MaxMpxCount - - - MaxSessionPerConnection - - - MaxThreadsPerQueue - - - MaxWorkItems - - - NullSessionPipes - - - NullSessionShares - - - OplockBreakWait - - - PendingClientTimeoutInSeconds - - - RejectUnencryptedAccess - - - RequireSecuritySignature - - - ServerHidden - - - Smb2CreditsMax - - - Smb2CreditsMin - - - SmbServerNameHardeningLevel - - - TreatHostAsStableStorage - - - ValidateAliasNotCircular - - - ValidateShareScope - - - ValidateShareScopeNotAliased - - - ValidateTargetName - - - - - - - - SmbServerNetworkInterfaceTableView - - SmbServerNetworkInterfaceTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - ScopeName - - - InterfaceIndex - - - RssCapable - - - RdmaCapable - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.LinkSpeed - - - - IpAddress - - - - - - - - SmbServerNetworkInterfaceListView - - SmbServerNetworkInterfaceTypes - - - - - - - ScopeName - - - InterfaceIndex - - - RssCapable - - - RdmaCapable - - - - - Import-Module SmbShare\SmbShare.Format.Helper.psm1 - Format-LinkSpeed $_.LinkSpeed - - - - IpAddress - - - - - - - - SmbSessionTableView - - SmbSessionTypes - - - - - - - - - - - - - - - - - - - - - SessionId - - - ClientComputerName - - - ClientUserName - - - NumOpens - - - - - - - - SmbSessionListView - - SmbSessionTypes - - - - - - - SessionId - - - ClientComputerName - - - ClientUserName - - - NumOpens - - - SecondsIdle - - - SecondsExists - - - - - - - - SmbShareAccessControlEntryTableView - - SmbShareAccessControlEntryTypes - - - - - - - - - - - - - - - - - - - - - - - - Name - - - ScopeName - - - AccountName - - - AccessControlType - - - AccessRight - - - - - - - - SmbShareAccessControlEntryListView - - SmbShareAccessControlEntryTypes - - - - - - - Name - - - ScopeName - - - AccountName - - - AccessControlType - - - AccessRight - - - - - - - - SmbShareTableView - - SmbShareTypes - - - - - - - - - - - - - - - - - - - - - Name - - - ScopeName - - - Path - - - Description - - - - - - - - SmbShareListView - - SmbShareTypes - - - - - - - Name - - - ScopeName - - - Path - - - Description - - - - - - - - SmbConnectionTableView - - SmbConnectionTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - ServerName - - - ShareName - - - UserName - - - Credential - - - Dialect - - - NumOpens - - - - - - - - SmbConnectionListView - - SmbConnectionTypes - - - - - - - ServerName - - - ShareName - - - UserName - - - Credential - - - Dialect - - - NumOpens - - - - - - - - SmbBandwidthLimitTableView - - SmbBandwidthLimitTypes - - - - - - - - - - - - - - - Category - - - BytesPerSecond - - - - - - - - SmbServerCertificateMappingTableView - - SmbServerCertificateMappingTypes - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Subject - - - Thumbprint - - - DisplayName - - - Type - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/Smb.types.ps1xml b/newton-cn/bin/v1.0/Modules/SmbShare/Smb.types.ps1xml deleted file mode 100644 index 3dd9cfe..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/Smb.types.ps1xml +++ /dev/null @@ -1,453 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbShare - - - PresetPathAcl - - $acl = Get-Acl ($this.PSBase.CimInstanceProperties['Path'].Value) - $acl.SetSecurityDescriptorSddlForm( $this.PSBase.CimInstanceProperties['SecurityDescriptor'].Value, [System.Security.AccessControl.AccessControlSections]::Access ) - - $newacl = Get-Acl ($this.PSBase.CimInstanceProperties['Path'].Value) - $newacl.SetSecurityDescriptorSddlForm( $this.PSBase.CimInstanceProperties['SecurityDescriptor'].Value, [System.Security.AccessControl.AccessControlSections]::Access ) - - - $type = [System.Security.Principal.SecurityIdentifier] - $flag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit - $rules = $acl.GetAccessRules( $true, $false, $type) - - # - # First clear all rules fron $newacl - # - For( $i=0; $i -lt $rules.Count; $i++ ) - { - $newacl.PurgeAccessRules( $rules[$i].IdentityReference ) - } - - # - # Now add the rules back with Container Inheritance and Object Inheritance flags set - # - For( $i=0; $i -lt $rules.Count; $i++ ) - { - $modifiedRule = new-object System.Security.AccessControl.FileSystemAccessRule $rules[$i].IdentityReference,$rules[$i].FileSystemRights,$flag,$rules[$i].PropagationFlags,$rules[$i].AccessControlType - - $newacl.AddAccessRule( $modifiedRule) - } - - $newacl - - - - - ShareState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareState] ($this.PSBase.CimInstanceProperties['ShareState'].Value) - - - - AvailabilityType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.AvailabilityType] ($this.PSBase.CimInstanceProperties['AvailabilityType'].Value) - - - - ShareType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareType] ($this.PSBase.CimInstanceProperties['ShareType'].Value) - - - - FolderEnumerationMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.FolderEnumerationMode] ($this.PSBase.CimInstanceProperties['FolderEnumerationMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['FolderEnumerationMode'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.FolderEnumerationMode] $newValue - - - - CachingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.CachingMode] ($this.PSBase.CimInstanceProperties['CachingMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['CachingMode'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.CachingMode] $newValue - - - - LeasingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.LeasingMode] ($this.PSBase.CimInstanceProperties['LeasingMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['LeasingMode'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.LeasingMode] $newValue - - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbShare - - - ShareState - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareState] ($this.PSBase.CimInstanceProperties['ShareState'].Value) - - - - AvailabilityType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.AvailabilityType] ($this.PSBase.CimInstanceProperties['AvailabilityType'].Value) - - - - ShareType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareType] ($this.PSBase.CimInstanceProperties['ShareType'].Value) - - - - FolderEnumerationMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.FolderEnumerationMode] ($this.PSBase.CimInstanceProperties['FolderEnumerationMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['FolderEnumerationMode'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.FolderEnumerationMode] $newValue - - - - CachingMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.CachingMode] ($this.PSBase.CimInstanceProperties['CachingMode'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['CachingMode'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.CachingMode] $newValue - - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbShareAccessControlEntry - - - AccessControlType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareAccessControlType] ($this.PSBase.CimInstanceProperties['AccessControlType'].Value) - - - - AccessRight - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareAccessRight] ($this.PSBase.CimInstanceProperties['AccessRight'].Value) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/SMB/MSFT_SmbShareAccessControlEntry - - - AccessControlType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareAccessControlType] ($this.PSBase.CimInstanceProperties['AccessControlType'].Value) - - - - AccessRight - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.ShareAccessRight] ($this.PSBase.CimInstanceProperties['AccessRight'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbMapping - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.MappingStatus] ($this.PSBase.CimInstanceProperties['Status'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbMapping - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.MappingStatus] ($this.PSBase.CimInstanceProperties['Status'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbGlobalMapping - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.MappingStatus] ($this.PSBase.CimInstanceProperties['Status'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbGlobalMapping - - - Status - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.MappingStatus] ($this.PSBase.CimInstanceProperties['Status'].Value) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbBandwidthLimit - - - Category - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.BandwidthLimitCategory] ($this.PSBase.CimInstanceProperties['Category'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Category'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.BandwidthLimitCategory] $newValue - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbBandwidthLimit - - - Category - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.BandwidthLimitCategory] ($this.PSBase.CimInstanceProperties['Category'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['Category'].Value = [System.UInt32] [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.BandwidthLimitCategory] $newValue - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbSession - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbSession - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbOpenFile - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbOpenFile - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbConnection - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbConnection - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbMultichannelConnection - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbMultichannelConnection - - - SmbInstance - - if ($null -eq ($this.PSBase.CimInstanceProperties['SmbInstance'].Value)) - { - $SmbInstance = 0; - } - else - { - $SmbInstance = ($this.PSBase.CimInstanceProperties['SmbInstance'].Value); - } - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbShare.SmbInstance] ($SmbInstance) - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbServerCertificateMapping - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbServerCertificateMapping.Type] ($this.PSBase.CimInstanceProperties['Type'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbServerCertificateMapping - - - Type - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbServerCertificateMapping.Type] ($this.PSBase.CimInstanceProperties['Type'].Value) - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbBandwidthLimit.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbBandwidthLimit.cdxml deleted file mode 100644 index cabd254..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbBandwidthLimit.cdxml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - 1.0 - - SmbBandwidthLimit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientConfiguration.cdxml deleted file mode 100644 index 256185a..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientConfiguration.cdxml +++ /dev/null @@ -1,237 +0,0 @@ - - - - 1.0 - - SmbClientConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientNetworkInterface.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientNetworkInterface.cdxml deleted file mode 100644 index 6a9a01d..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbClientNetworkInterface.cdxml +++ /dev/null @@ -1,26 +0,0 @@ - - - - 1.0 - - SmbClientNetworkInterface - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbComponent.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbComponent.cdxml deleted file mode 100644 index 15d54c2..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbComponent.cdxml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - 1.0 - SmbComponent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbConnection.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbConnection.cdxml deleted file mode 100644 index 0358b15..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbConnection.cdxml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 1.0 - - SmbConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbGlobalMapping.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbGlobalMapping.cdxml deleted file mode 100644 index 3071864..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbGlobalMapping.cdxml +++ /dev/null @@ -1,169 +0,0 @@ - - - - 1.0 - SmbGlobalMapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMapping.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbMapping.cdxml deleted file mode 100644 index 389b918..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMapping.cdxml +++ /dev/null @@ -1,177 +0,0 @@ - - - - 1.0 - - SmbMapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConnection.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConnection.cdxml deleted file mode 100644 index 827fdf5..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConnection.cdxml +++ /dev/null @@ -1,83 +0,0 @@ - - - - 1.0 - - SmbMultichannelConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConstraint.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConstraint.cdxml deleted file mode 100644 index a1d73fc..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbMultichannelConstraint.cdxml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - 1.0 - - SmbMultichannelConstraint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbOpenFile.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbOpenFile.cdxml deleted file mode 100644 index c32a50e..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbOpenFile.cdxml +++ /dev/null @@ -1,149 +0,0 @@ - - - - 1.0 - - SmbOpenFile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbScriptModule.psm1 b/newton-cn/bin/v1.0/Modules/SmbShare/SmbScriptModule.psm1 deleted file mode 100644 index 9dbba10..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbScriptModule.psm1 +++ /dev/null @@ -1,185 +0,0 @@ - data _system_translations - { - ConvertFrom-StringData @' - - # Fallback text - # Copy all the strings in the psd1 file here - - msg_ad_forest = SMB Delegation cmdlets require the Active Directory forest to be in Windows Server 2012 forest functional level. - - msg_ad_cmdlets = SMB Delegation cmdlets require the installation of the Active Directory module for Windows PowerShell. - -'@ -} - -Import-LocalizedData -BindingVariable _system_translations -fileName SmbLocalization.psd1 - - function Set-SmbPathAcl - { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [string] - $ShareName, - - [Parameter()] - [string] - $ScopeName = $null - ) - - if( ($null -ne $ScopeName ) -and ( "" -ne $ScopeName) ) - { - (Get-SmbShare -Name $ShareName -ScopeName $ScopeName ).PresetPathACL | Set-Acl - } - else - { - (Get-SmbShare -Name $ShareName ).PresetPathACL | Set-Acl - } - - } - -function CheckDelegationPrerequisites -{ - if( $null -eq (Get-Command -Module ActiveDirectory) ) - { - Write-Error $_system_translations.msg_ad_cmdlets - - return $false - } - - # - # Forest mode should be greater than or equal to Windows2012Forest - # - if( (Get-AdForest).ForestMode.ToInt32($null) -lt [Microsoft.ActiveDirectory.Management.AdForestMode]::Windows2012Forest.ToInt32($null) ) - { - Write-Error $_system_translations.msg_ad_forest - - return $false - } - - return $true -} - - function Get-SmbDelegation - { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [string] - $SmbServer - ) - - $check = CheckDelegationPrerequisites - - if( -not $check ) - { - return - } - - $result = @() - - $fsAD = Get-ADComputer -filter {Name -Like $SmbServer} -Properties 'msds-allowedtoactonbehalfofotheridentity' - - foreach ($AllowedAccount in $fsAD."msDS-AllowedToActOnBehalfOfOtherIdentity".Access) - { - $samAccountName = $AllowedAccount.IdentityReference.Value - $samAccountName = $samAccountName.Remove(0, ($samAccountName.IndexOf("\")+1)) - - $result += Get-ADComputer -Filter {SamAccountName -Like $samAccountName} - } - - $result.Name - } - - function Enable-SmbDelegation - { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [string] - $SmbClient, - - [Parameter(Mandatory=$true)] - [string] - $SmbServer - ) - - $check = CheckDelegationPrerequisites - - if( -not $check ) - { - return - } - - $delegationPrinciples = @() - $fsAD = Get-ADComputer -Filter {Name -Like $SmbServer} -Properties msDS-AllowedToActOnBehalfOfOtherIdentity - - foreach ($AllowedAccount in $fsAD."msDS-AllowedToActOnBehalfOfOtherIdentity".Access) - { - $samAccountName = $AllowedAccount.IdentityReference.Value - $samAccountName = $samAccountName.Remove(0, ($samAccountName.IndexOf("\")+1)) - - $delegationPrinciples += Get-ADComputer -Filter {SamAccountName -Like $samAccountName} - } - - $delegationPrinciples += Get-ADComputer -Identity $SmbClient - $fsAD | Set-ADComputer -PrincipalsAllowedToDelegateToAccount $delegationPrinciples - } - - - function Disable-SmbDelegation - { - [CmdletBinding()] - param( - [Parameter()] - [string] - $SmbClient, - - [Parameter(Mandatory=$true)] - [string] - $SmbServer, - - [System.Management.Automation.SwitchParameter] - [bool] - $Force = $false - ) - - $check = CheckDelegationPrerequisites - - if( -not $check ) - { - return - } - - $delegationPrinciples = @() - $fsAD = Get-ADComputer -Filter {Name -Like $SmbServer} -Properties msDS-AllowedToActOnBehalfOfOtherIdentity - - if( ($null -ne $SmbClient) -and ("" -ne $SmbClient) ) - { - foreach ($AllowedAccount in $fsAD."msDS-AllowedToActOnBehalfOfOtherIdentity".Access) - { - $samAccountName = $AllowedAccount.IdentityReference.Value - $samAccountName = $samAccountName.Remove(0, ($samAccountName.IndexOf("\")+1)) - - $adc = Get-ADComputer -Filter {SamAccountName -Like $samAccountName} - - if( $adc.Name -ne $SmbClient ) - { - $delegationPrinciples += $adc - } - } - } - - $fsAD | Set-ADComputer -PrincipalsAllowedToDelegateToAccount $delegationPrinciples - } - - Set-Alias -Name ssmbp -Value Set-SmbPathAcl - Set-Alias -Name gsmbd -Value Get-SmbDelegation - Set-Alias -Name esmbd -Value Enable-SmbDelegation - Set-Alias -Name dsmbd -Value Disable-SmbDelegation - - - Export-ModuleMember -Function Set-SmbPathAcl -Alias ssmbp - Export-ModuleMember -Function Get-SmbDelegation -Alias gsmbd - Export-ModuleMember -Function Enable-SmbDelegation -Alias esmbd - Export-ModuleMember -Function Disable-SmbDelegation -Alias dsmbd \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerCertificateMapping.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerCertificateMapping.cdxml deleted file mode 100644 index b20d89c..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerCertificateMapping.cdxml +++ /dev/null @@ -1,198 +0,0 @@ - - - - - 1.0 - - SmbServerCertificateMapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerConfiguration.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerConfiguration.cdxml deleted file mode 100644 index cf28b0b..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerConfiguration.cdxml +++ /dev/null @@ -1,350 +0,0 @@ - - - - 1.0 - - SmbServerConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerNetworkInterface.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerNetworkInterface.cdxml deleted file mode 100644 index fd433a3..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbServerNetworkInterface.cdxml +++ /dev/null @@ -1,26 +0,0 @@ - - - - 1.0 - - SmbServerNetworkInterface - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbSession.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbSession.cdxml deleted file mode 100644 index dc8b5a4..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbSession.cdxml +++ /dev/null @@ -1,136 +0,0 @@ - - - - 1.0 - - SmbSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.Format.Helper.psm1 b/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.Format.Helper.psm1 deleted file mode 100644 index bcb34a6..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.Format.Helper.psm1 +++ /dev/null @@ -1,43 +0,0 @@ -<# - -Copyright (c) 2011 Microsoft Corporation. All Rights Reserved. - -Module Name: - - SmbShare.Format.Helper.psm1 - -Description: - - Provides helper routines for formatting the output of - SmbShare CmdLets. - -#> - -function Format-LinkSpeed($LinkSpeed) -<# -Function Description: - This function returns the link speed of a network adapter - -Arguments: - $LinkSpeed - -Return Value: - Formatted link speed -#> -{ - $out= - if($LinkSpeed -eq $null) - {"Unknown"} - else - { - switch ($LinkSpeed) - { - {$_ -lt 1000} {"$_ bps"; break} - {$_ -lt 1000000} {"$($_/1000) Kbps"; break} - {$_ -lt 1000000000} {"$($_/1000000) Mbps"; break} - default {"$($_/1000000000) Gbps"} - } - } - - return $out -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.cdxml b/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.cdxml deleted file mode 100644 index 1067238..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.cdxml +++ /dev/null @@ -1,776 +0,0 @@ - - - - - 1.0 - - SmbShare - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.psd1 b/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.psd1 deleted file mode 100644 index 6445c63..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/SmbShare.psd1 +++ /dev/null @@ -1,114 +0,0 @@ - -@{ - GUID = '3af1699d-cc54-4e54-81cf-28d2df5cce0a' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390827" - NestedModules = @('SmbShare.cdxml', - 'SmbSession.cdxml', - 'SmbServerNetworkInterface.cdxml', - 'SmbServerConfiguration.cdxml', - 'SmbOpenFile.cdxml', - 'SmbMultichannelConnection.cdxml', - 'SmbMapping.cdxml', - 'SmbGlobalMapping.cdxml', - 'SmbClientNetworkInterface.cdxml', - 'SmbClientConfiguration.cdxml', - 'SmbConnection.cdxml', - 'SmbMultichannelConstraint.cdxml', - 'SmbBandwidthLimit.cdxml', - 'SmbServerCertificateMapping.cdxml', - 'SmbComponent.cdxml', - 'SmbScriptModule.psm1') - FormatsToProcess = @('Smb.format.ps1xml') - TypesToProcess = @('Smb.types.ps1xml') - ModuleVersion = '2.0.0.0' - AliasesToExport = @('gsmbs', - 'nsmbs', - 'rsmbs', - 'ssmbs', - 'gsmba', - 'grsmba', - 'rksmba', - 'blsmba', - 'ulsmba', - 'gsmbse', - 'cssmbse', - 'gsmbo', - 'cssmbo', - 'gsmbsc', - 'ssmbsc', - 'gsmbcc', - 'ssmbcc', - 'gsmbc', - 'gsmbm', - 'nsmbm', - 'rsmbm', - 'gsmbcn', - 'gsmbsn', - 'gsmbmc', - 'udsmbmc', - 'gsmbt', - 'nsmbt', - 'rsmbt', - 'ssmbp', - 'gsmbb', - 'ssmbb', - 'rsmbb', - 'gsmbd', - 'esmbd', - 'dsmbd', - 'gsmbgm', - 'nsmbgm', - 'rsmbgm', - 'gsmbscm', - 'rsmbscm', - 'nsmbscm', - 'rsmbc') - CmdletsToExport = @() - FunctionsToExport = @('Get-SmbShare', - 'Remove-SmbShare', - 'Set-SmbShare', - 'Block-SmbShareAccess', - 'Unblock-SmbShareAccess', - 'Grant-SmbShareAccess', - 'Revoke-SmbShareAccess', - 'Get-SmbShareAccess', - 'New-SmbShare', - 'Get-SmbSession', - 'Close-SmbSession', - 'Get-SmbServerNetworkInterface', - 'Get-SmbServerConfiguration', - 'Set-SmbServerConfiguration', - 'Get-SmbOpenFile', - 'Close-SmbOpenFile', - 'Get-SmbMultichannelConnection', - 'Update-SmbMultichannelConnection', - 'Get-SmbMapping', - 'Remove-SmbMapping', - 'New-SmbMapping', - 'Get-SmbClientNetworkInterface', - 'Get-SmbClientConfiguration', - 'Set-SmbClientConfiguration', - 'Get-SmbConnection', - 'Get-SmbMultichannelConstraint', - 'New-SmbMultichannelConstraint', - 'Remove-SmbMultichannelConstraint', - 'Set-SmbPathAcl', - 'Get-SmbBandWidthLimit', - 'Set-SmbBandwidthLimit', - 'Remove-SmbBandwidthLimit', - 'Get-SmbDelegation', - 'Enable-SmbDelegation', - 'Disable-SmbDelegation', - 'Get-SmbGlobalMapping', - 'Remove-SmbGlobalMapping', - 'New-SmbGlobalMapping', - 'Get-SmbServerCertificateMapping', - 'New-SmbServerCertificateMapping', - 'Remove-SmbServerCertificateMapping', - 'Remove-SMBComponent') - PowerShellVersion = '5.1' - CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/SmbShare/en-US/SmbLocalization.psd1 b/newton-cn/bin/v1.0/Modules/SmbShare/en-US/SmbLocalization.psd1 deleted file mode 100644 index 621b912..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbShare/en-US/SmbLocalization.psd1 +++ /dev/null @@ -1,11 +0,0 @@ -# Localized 12/07/2019 01:04 AM (GMT) 303:6.40.20520 SmbLocalization.psd1 -# Only add new (name,value) pairs to the end of this table -# Do not remove, insert or re-arrange entries - -ConvertFrom-StringData @' - - msg_ad_forest = SMB Delegation cmdlets require the Active Directory forest to be in Windows Server 2012 forest functional level. - - msg_ad_cmdlets = SMB Delegation cmdlets require the installation of the Active Directory module for Windows PowerShell. - -'@ diff --git a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.Format.ps1xml b/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.Format.ps1xml deleted file mode 100644 index 5230543..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.Format.ps1xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - SmbWitnessClientEntryType - - Microsoft.Management.Infrastructure.CimInstance#root\Microsoft\Windows\SMBWitness\MSFT_SmbWitnessClient - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbWitnessClient - - - - - - SmbWitnessClientTableView - - SmbWitnessClientEntryType - - - - - - - - - - - - - - - - - - - - - - - - - - - ClientName - - - WitnessNodeName - - - FileServerNodeName - - - NetworkName - - - ShareName - - - State - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.psd1 b/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.psd1 deleted file mode 100644 index 9adc04c..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.psd1 +++ /dev/null @@ -1,19 +0,0 @@ - -@{ - GUID = 'ef018256-3318-4e74-a823-158022778487' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - NestedModules = @('SmbWitnessWmiClient.cdxml') - FormatsToProcess = @('SmbWitness.format.ps1xml') - TypesToProcess = @('SmbWitness.types.ps1xml') - ModuleVersion = '2.0.0.0' - AliasesToExport = @('gsmbw', - 'msmbw', - 'Move-SmbClient') - FunctionsToExport = @('Get-SmbWitnessClient', - 'Move-SmbWitnessClient') - PowerShellVersion = '5.1' - HelpInfoUri= "http://go.microsoft.com/fwlink/?linkid=390828" - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.types.ps1xml b/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.types.ps1xml deleted file mode 100644 index 36208d1..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitness.types.ps1xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/SMB/MSFT_SmbWitnessClient - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbWitnessClient.State] ($this.PSBase.CimInstanceProperties['State'].Value) - - - - Flags - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbWitnessClient.Flags] ($this.PSBase.CimInstanceProperties['Flags'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_SmbWitnessClient - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbWitnessClient.State] ($this.PSBase.CimInstanceProperties['State'].Value) - - - - Flags - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.SmbWitnessClient.Flags] ($this.PSBase.CimInstanceProperties['Flags'].Value) - - - - - diff --git a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitnessWmiClient.cdxml b/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitnessWmiClient.cdxml deleted file mode 100644 index c7e19b1..0000000 --- a/newton-cn/bin/v1.0/Modules/SmbWitness/SmbWitnessWmiClient.cdxml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 1.0 - SmbWitnessClient - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/StartLayout/GetStartApps.psm1 b/newton-cn/bin/v1.0/Modules/StartLayout/GetStartApps.psm1 deleted file mode 100644 index 3f5adc1..0000000 --- a/newton-cn/bin/v1.0/Modules/StartLayout/GetStartApps.psm1 +++ /dev/null @@ -1,14 +0,0 @@ -function Get-StartApps($Name) { - Get-AllStartApps | Where-Object { $_.Name -like "*$Name*" } -} - -function Get-AllStartApps { - (New-Object -ComObject Shell.Application). - NameSpace("shell:::{4234d49b-0245-4df3-b780-3893943456e1}"). # FOLDERID_AppsFolder - Items() | % { - [PSCustomObject]@{ - 'Name'=$_.Name - 'AppID'=$_.Path - } - } -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/StartLayout/StartLayout.psd1 b/newton-cn/bin/v1.0/Modules/StartLayout/StartLayout.psd1 deleted file mode 100644 index 0aadcdb..0000000 --- a/newton-cn/bin/v1.0/Modules/StartLayout/StartLayout.psd1 +++ /dev/null @@ -1,15 +0,0 @@ -@{ -GUID="C361139B-C043-44A9-B94F-513FBAF1AF0D" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="1.0.0.2" -PowerShellVersion = '5.1' -ClrVersion="4.0" -RootModule="Microsoft.Windows.StartLayout.Commands" -NestedModules="GetStartApps.psm1" -CmdletsToExport="Export-StartLayout", "Import-StartLayout", "Export-StartLayoutEdgeAssets" -FunctionsToExport="Get-StartApps" -HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390831" -CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Storage/Disk.cdxml b/newton-cn/bin/v1.0/Modules/Storage/Disk.cdxml deleted file mode 100644 index 77a39c2..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Disk.cdxml +++ /dev/null @@ -1,562 +0,0 @@ - - - 1.0.0.0 - Disk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/DiskImage.cdxml b/newton-cn/bin/v1.0/Modules/Storage/DiskImage.cdxml deleted file mode 100644 index 872dd18..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/DiskImage.cdxml +++ /dev/null @@ -1,150 +0,0 @@ - - - 1.0.0.0 - DiskImage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/FileIntegrity.cdxml b/newton-cn/bin/v1.0/Modules/Storage/FileIntegrity.cdxml deleted file mode 100644 index ea1f5d7..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/FileIntegrity.cdxml +++ /dev/null @@ -1,92 +0,0 @@ - - - 1.0.0.0 - FileIntegrity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/FileServer.cdxml b/newton-cn/bin/v1.0/Modules/Storage/FileServer.cdxml deleted file mode 100644 index e1846f8..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/FileServer.cdxml +++ /dev/null @@ -1,210 +0,0 @@ - - - 1.0.0.0 - StorageFileServer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/FileShare.cdxml b/newton-cn/bin/v1.0/Modules/Storage/FileShare.cdxml deleted file mode 100644 index ba1b170..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/FileShare.cdxml +++ /dev/null @@ -1,386 +0,0 @@ - - - 1.0.0.0 - FileShare - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/FileStorageTier.cdxml b/newton-cn/bin/v1.0/Modules/Storage/FileStorageTier.cdxml deleted file mode 100644 index d270f61..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/FileStorageTier.cdxml +++ /dev/null @@ -1,269 +0,0 @@ - - - 1.0.0.0 - FileStorageTier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/InitiatorId.cdxml b/newton-cn/bin/v1.0/Modules/Storage/InitiatorId.cdxml deleted file mode 100644 index 9a7bc44..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/InitiatorId.cdxml +++ /dev/null @@ -1,139 +0,0 @@ - - - 1.0.0.0 - InitiatorId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/InitiatorPort.cdxml b/newton-cn/bin/v1.0/Modules/Storage/InitiatorPort.cdxml deleted file mode 100644 index 977454c..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/InitiatorPort.cdxml +++ /dev/null @@ -1,152 +0,0 @@ - - - 1.0.0.0 - InitiatorPort - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/MaskingSet.cdxml b/newton-cn/bin/v1.0/Modules/Storage/MaskingSet.cdxml deleted file mode 100644 index 3b88138..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/MaskingSet.cdxml +++ /dev/null @@ -1,524 +0,0 @@ - - - 1.0.0.0 - MaskingSet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/OffloadDataTransferSetting.cdxml b/newton-cn/bin/v1.0/Modules/Storage/OffloadDataTransferSetting.cdxml deleted file mode 100644 index 86c2d2d..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/OffloadDataTransferSetting.cdxml +++ /dev/null @@ -1,26 +0,0 @@ - - - 1.0.0.0 - OffloadDataTransferSetting - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/Partition.cdxml b/newton-cn/bin/v1.0/Modules/Storage/Partition.cdxml deleted file mode 100644 index 2c0bdf1..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Partition.cdxml +++ /dev/null @@ -1,404 +0,0 @@ - - - 1.0.0.0 - Partition - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/PhysicalDisk.cdxml b/newton-cn/bin/v1.0/Modules/Storage/PhysicalDisk.cdxml deleted file mode 100644 index 23c102f..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/PhysicalDisk.cdxml +++ /dev/null @@ -1,6 +0,0 @@ - - - 1.0.0.0 - PhysicalDisk - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/ResiliencySetting.cdxml b/newton-cn/bin/v1.0/Modules/Storage/ResiliencySetting.cdxml deleted file mode 100644 index 69f9257..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/ResiliencySetting.cdxml +++ /dev/null @@ -1,123 +0,0 @@ - - - 1.0.0.0 - ResiliencySetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/Storage.format.ps1xml b/newton-cn/bin/v1.0/Modules/Storage/Storage.format.ps1xml deleted file mode 100644 index 158aaf6..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Storage.format.ps1xml +++ /dev/null @@ -1,2933 +0,0 @@ - - - - - DeviceInformation - - - - - DeviceNumber : - - DeviceNumber - - - DeviceGuid : - - DeviceGuid - - - FriendlyName : - - FriendlyName - - - SerialNumber : - - SerialNumber - - - AdapterSerialNumber : - - AdapterSerialNumber - - - FirmwareRevision : - - FirmwareRevision - - - BusType : - - BusType - - - MediaType : - - MediaType - - - IoTimeout : - - - if ($_.IoTimeout -gt 0) - { - $_.IoTimeout.ToString() + " seconds" - } - else - { - "Not available" - } - - - - - - - - - - - - DiskTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Disk - - - - - - 6 - - - - - - - 32 - - - - 20 - - - - 20 - - - - 12 - - - - 10 - - - - - - - Number - - - FriendlyName - - - SerialNumber - - - HealthStatus - - - OperationalStatus - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - PartitionStyle - - - - - - - - DiskListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Disk - - - - - - - UniqueId - - - Number - - - Path - - - Manufacturer - - - Model - - - SerialNumber - - - - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - AllocatedSize - - - LogicalSectorSize - - - PhysicalSectorSize - - - NumberOfPartitions - - - PartitionStyle - - - IsReadOnly - - - IsSystem - - - IsBoot - - - - - - - - - PartitionTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Partition - - - DiskId - - - - - - - 16 - - - - 11 - - - - - - - 10 - - - - - - - - - - PartitionNumber - - - DriveLetter - - - Offset - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Type - - - - - - - - PartitionListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Partition - - - - - - - UniqueId - - - AccessPaths - - - DiskNumber - - - DiskPath - - - DriveLetter - - - Guid - - - IsActive - - - IsBoot - - - IsHidden - - - IsOffline - - - IsReadOnly - - - IsShadowCopy - - - IsDAX - - - IsSystem - - - NoDefaultDriveLetter - - - Offset - - - OperationalStatus - - - PartitionNumber - - - - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Type - - - - - - - - - VirtualDiskTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_VirtualDisk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FriendlyName - - - ResiliencySettingName - - - PhysicalDiskRedundancy - - - OperationalStatus - - - HealthStatus - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Right - - $footprint = $_.FootprintOnPool; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $footprint -ge 1024 -and $i -lt $postfixes.Length; $i++) { $footprint = $footprint / 1024; } - return "" + [System.Math]::Round($footprint,2) + " " + $postfixes[$i]; - - - - Right - - $efficiency = ""; - if ($_.FootprintOnPool -gt 0) { $efficiency = ($_.AllocatedSize / $_.FootprintOnPool).ToString("P"); } - return $efficiency - - - - - - - - - - StorageTierTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageTier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FriendlyName - - - TierClass - - - MediaType - - - ResiliencySettingName - - - PhysicalDiskRedundancy - - - Right - - $size = $_.Size; - $postfixes = @( "B ", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Right - - $footprint = $_.FootprintOnPool; - $postfixes = @( "B ", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $footprint -ge 1024 -and $i -lt $postfixes.Length; $i++) { $footprint = $footprint / 1024; } - return "" + [System.Math]::Round($footprint,2) + " " + $postfixes[$i]; - - - - Right - - $efficiency = ""; - if ($_.FootprintOnPool -gt 0) { $efficiency = ($_.Size / $_.FootprintOnPool).ToString("P"); } - return $efficiency - - - - - - - - - - StorageFaultDomainView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageFaultDomain - - - - - - 24 - - - - - - - - - - - - - 14 - - - - - - - - - - - return $_.ClassName.Replace('MSFT_', ''); - - - - FriendlyName - - - SerialNumber - - - PhysicalLocation - - - HealthStatus - - - OperationalStatus - - - - - - - - - PhysicalDiskTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PhysicalDisk - - - - - - - - - - - - - - - - - - 9 - - - - - - - 14 - - - - 14 - - - - 10 - - - - - - - DeviceId - - - FriendlyName - - - SerialNumber - - - MediaType - - - CanPool - - - OperationalStatus - - - HealthStatus - - - Usage - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - - - - - - AdvancedPhysicalDiskTableView - - Microsoft.Windows.StorageManagement.PhysicalDiskAdvancedProperties - - - - - - - - - - - - 20 - - - - 24 - - - - - - - $_.PhysicalDisk.FriendlyName - - - $_.PhysicalDisk.SerialNumber - - - Right - IsPowerProtected - - - Right - IsDeviceCacheEnabled - - - - - - - - - StorageError_v1TableView - - Microsoft.Windows.StorageManagement.StorageError_v1 - - - DeviceGuid - DeviceInformation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:MM:00') - return $datetime.ToShortDateString() - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:MM:00') - return $datetime.ToShortTimeString() - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.Command) - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.SrbStatus) - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.ScsiStatus) - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.SenseKey) - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.SenseCode) - - - - Right - - return "0x" + [String]::Format('{0:x2}',$_.SenseCodeQualifier) - - - - Right - - return [String]::Format('{0:N0}',$_.IoSize) - - - - Right - - return [String]::Format('{0:N0}',$_.LBA) - - - - - - - - - - StorageHistory_v5TableView - - Microsoft.Windows.StorageManagement.StorageHistory_v5 - - - DeviceGuid - DeviceInformation - - - - - - - - - - - - - - - - - - - - - - - - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') - return $datetime.ToShortDateString() - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') - return $datetime.ToShortTimeString() - - - - Right - - return [String]::Format('{0:N0}',$_.TotalIoCount) - - - - Right - MaxOutstandingCount - - - Right - - return [String]::Format('{0:N1}',$_.AvgIoLatency/10) - - - - Right - - return [String]::Format('{0:N1}',$_.MaxIoLatency/10) - - - - - - - - - StorageHistory_v11TableView - - Microsoft.Windows.StorageManagement.StorageHistory_v11 - - - DeviceGuid - DeviceInformation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') - return $datetime.ToShortDateString() - - - - Right - - [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') - return $datetime.ToShortTimeString() - - - - Right - - return [String]::Format('{0:N0}',$_.TotalIoCount) - - - - Right - - return [String]::Format('{0:N0}',$_.FailedIoCount) - - - - Right - MaxOutstandingCount - - - Right - - return [String]::Format('{0:N1}',$_.AvgIoLatency/10) - - - - Right - - return [String]::Format('{0:N1}',$_.MaxIoLatency/10) - - - - Right - - return [String]::Format('{0:N0}',$_.TotalQueueIoCount) - - - - Right - - return [String]::Format('{0:N1}',$_.AvgQueueIoWaitTime/10) - - - - Right - - return [String]::Format('{0:N1}',$_.MaxQueueIoWaitTime/10) - - - - Right - - return [String]::Format('{0:N0}',$_.QueueIoWaitExceededTimeoutCount) - - - - - - - - - - StorageHistoryAggregate_v5TableView - - Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DeviceNumber - - - FriendlyName - - - SerialNumber - - - BusType - - - MediaType - - - Right - - return [String]::Format('{0:N0}',$_.TotalIoCount) - - - - Right - - return [String]::Format('{0:N1}',$_.AvgIoLatency/10) - - - - Right - - return [String]::Format('{0:N1}',$_.MaxIoLatency/10) - - - - Right - EventCount - - - Right - - if ($_.BucketHighestLatencyCount[0] -gt 0) - { - return $_.BucketHighestLatencyCount[0] - } - - - - Right - - if ($_.BucketHighestLatencyCount[1] -gt 0) - { - return $_.BucketHighestLatencyCount[1] - } - - - - Right - - if ($_.BucketHighestLatencyCount[2] -gt 0) - { - return $_.BucketHighestLatencyCount[2] - } - - - - Right - - if ($_.BucketHighestLatencyCount[3] -gt 0) - { - return $_.BucketHighestLatencyCount[3] - } - - - - Right - - if ($_.BucketHighestLatencyCount[4] -gt 0) - { - return $_.BucketHighestLatencyCount[4] - } - - - - - - - - - StorageHistoryAggregate_v11TableView - - Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DeviceNumber - - - FriendlyName - - - SerialNumber - - - BusType - - - MediaType - - - Right - - return [String]::Format('{0:N0}',$_.TotalIoCount) - - - - Right - - return [String]::Format('{0:N0}',$_.FailedIoCount) - - - - Right - - return [String]::Format('{0:N0}',$_.TotalQueueIoCount) - - - - Right - - return [String]::Format('{0:N1}',$_.AvgIoLatency/10) - - - - Right - - return [String]::Format('{0:N1}',$_.MaxIoLatency/10) - - - - Right - EventCount - - - Right - - if ($_.BucketHighestLatencyCount[0] -gt 0) - { - return $_.BucketHighestLatencyCount[0] - } - - - - Right - - if ($_.BucketHighestLatencyCount[1] -gt 0) - { - return $_.BucketHighestLatencyCount[1] - } - - - - Right - - if ($_.BucketHighestLatencyCount[2] -gt 0) - { - return $_.BucketHighestLatencyCount[2] - } - - - - Right - - if ($_.BucketHighestLatencyCount[3] -gt 0) - { - return $_.BucketHighestLatencyCount[3] - } - - - - Right - - if ($_.BucketHighestLatencyCount[4] -gt 0) - { - return $_.BucketHighestLatencyCount[4] - } - - - - Right - - if ($_.BucketHighestLatencyCount[5] -gt 0) - { - return $_.BucketHighestLatencyCount[5] - } - - - - Right - - if ($_.BucketHighestLatencyCount[6] -gt 0) - { - return $_.BucketHighestLatencyCount[6] - } - - - - Right - - if ($_.BucketHighestLatencyCount[7] -gt 0) - { - return $_.BucketHighestLatencyCount[7] - } - - - - Right - - if ($_.BucketHighestLatencyCount[8] -gt 0) - { - return $_.BucketHighestLatencyCount[8] - } - - - - Right - - if ($_.BucketHighestLatencyCount[9] -gt 0) - { - return $_.BucketHighestLatencyCount[9] - } - - - - Right - - if ($_.BucketHighestLatencyCount[10] -gt 0) - { - return $_.BucketHighestLatencyCount[10] - } - - - - Right - - if ($_.BucketHighestLatencyCount[11] -gt 0) - { - return $_.BucketHighestLatencyCount[11] - } - - - - - - - - - - StoragePoolTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StoragePool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FriendlyName - - - OperationalStatus - - - HealthStatus - - - IsPrimordial - - - IsReadOnly - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Right - - $allocatedSize = $_.AllocatedSize; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $allocatedSize -ge 1024 -and $i -lt $postfixes.Length; $i++) { $allocatedSize = $allocatedSize / 1024; } - return "" + [System.Math]::Round($allocatedSize,2) + " " + $postfixes[$i]; - - - - - - - - - - ResiliencySettingTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ResiliencySetting - - - StoragePoolFriendlyName - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - NumberOfDataCopiesDefault - - - PhysicalDiskRedundancyDefault - - - NumberOfColumnsDefault - - - InterleaveDefault - - - NumberOfGroupsDefault - - - - - - - - - StorageEnclosureTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageEnclosure - - - - - - - - - - - - - - - 13 - - - - 14 - - - - - - - - - - FriendlyName - - - SerialNumber - - - OperationalStatus - - - HealthStatus - - - NumberOfSlots - - - - $ElementTypesInError = @( ); - foreach ( $status in $_.SlotOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "Slot"; - break; - } - } - foreach ( $status in $_.PowerSupplyOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "PowerSupply"; - break; - } - } - foreach ( $status in $_.FanOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "Fan"; - break; - } - } - foreach ( $status in $_.TemperatureSensorOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "TemperatureSensor"; - break; - } - } - foreach ( $status in $_.VoltageSensorOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "VoltageSensor"; - break; - } - } - foreach ( $status in $_.CurrentSensorOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "CurrentSensor"; - break; - } - } - foreach ( $status in $_.IOControllerOperationalStatus ) - { - if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) - { - $ElementTypesInError = $ElementTypesInError + "IOController"; - break; - } - } - return $ElementTypesInError; - - - - - - - - - - StorageProviderTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider - - - - - - 7 - - - - - - - - - - - - - Type - - - Name - - - Manufacturer - - - - - - - - StorageProviderListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider - - - - - - - UniqueId - - - Name - - - Manufacturer - - - Version - - - - - - - - StorageProviderWideView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider - - - - - - Name - - - - - - - - StorageSubSystemTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageSubSystem - - - - - - - - - - - - - - - - - - FriendlyName - - - HealthStatus - - - OperationalStatus - - - - - - - - - StorageNodeTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNode - - - - - - - - - - - - - - - - - - - - - - - - Name - - - Manufacturer - - - Model - - - SerialNumber - - - OperationalStatus - - - - - - - - - VolumeTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Volume - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DriveLetter - - - FileSystemLabel - - - FileSystemType - - - DriveType - - - HealthStatus - - - OperationalStatus - - - Right - - $size = $_.SizeRemaining; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - Right - - $size = $_.Size; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; - - - - - - - - - - InitiatorPortTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorPort - - - - - - - - - - - - - - - - - - - - - InstanceName - - - NodeAddress - - - PortAddress - - - ConnectionType - - - - - - - - - InitiatorIdTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorId - - - - - - - - - - - - - - - - - - InitiatorAddress - - - Type - - - HostType - - - - - - - - - TargetPortTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TargetPort - - - - - - - - - - - - - - - - - - - - - - - - - - - FriendlyName - - - NodeAddress - - - PortAddress - - - ConnectionType - - - HealthStatus - - - OperationalStatus - - - - - - - - - TargetPortalTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TargetPortal - - - - - - - - - - - - - - - - - - - - - IPv4Address - - - IPv6Address - - - PortNumber - - - SubnetMask - - - - - - - - - MaskingSetTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_MaskingSet - - - - - - - - - - - - - - - FriendlyName - - - HostType - - - - - - - - - StorageJobTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageJob - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name - - - IsBackgroundTask - - - ElapsedTime - - - JobState - - - PercentComplete - - - Right - - $bytesProcessed = $_.BytesProcessed; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $bytesProcessed -ge 1024 -and $i -lt $postfixes.Length; $i++) { $bytesProcessed = $bytesProcessed / 1024; } - return "" + [System.Math]::Round($bytesProcessed,2) + " " + $postfixes[$i]; - - - - Right - - $bytesTotal = $_.BytesTotal; - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - for ($i=0; $bytesTotal -ge 1024 -and $i -lt $postfixes.Length; $i++) { $bytesTotal = $bytesTotal / 1024; } - return "" + [System.Math]::Round($bytesTotal,2) + " " + $postfixes[$i]; - - - - - - - - - - FileIntegrityTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileIntegrity - - - - - - - - - - - - - - - - - - FileName - - - Enabled - - - Enforced - - - - - - - - - FileStorageTierTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileStorageTier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FilePath - - - FileSize - - - DesiredStorageTierClass - - - FileSizeOnPerformanceTierClass - - - FileSizeOnCapacityTierClass - - - PlacementStatus - - - State - - - - "{0:P}" -f ($_.FileSizeOnDesiredStorageTierClass / $_.FileSize); - - - - - - - - - - StorageNodeToDisk - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToDisk - - - StorageNodeObjectId - - - - - - - - DiskNumber - - - HealthStatus - - - OperationalStatus - - - IsReadOnly - - - IsOffline - - - OfflineReason - - - StorageNode - - - Disk - - - - - - - - - FileServerTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileServer - - - - - - - - - - - - - - - - - - FriendlyName - - - HealthStatus - - - OperationalStatus - - - - - - - - - FileShareTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileShare - - - - - - - - - - - - - - - - - - Name - - - HealthStatus - - - OperationalStatus - - - - - - - - - StorageReliabilityCounterTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageReliabilityCounter - - - - - - - - - - - - - - - - - - - - - - - - DeviceId - - - - if( $_.Temperature ) - { - $_str += $_.Temperature; - $_str += " C" - } - return $_str - - - - ReadErrorsUncorrected - - - Wear - - - PowerOnHours - - - - - - - - - StorageNodeToPhysicalDisk - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToPhysicalDisk - - - StorageNodeObjectId - - - - - - - - DiskNumber - - - IsPhysicallyConnected - - - HealthStatus - - - OperationalStatus - - - IsMpioEnabled - - - LoadBalancePolicy - - - PathId - - - PathState - - - StorageNode - - - PhysicalDisk - - - - - - - - - StorageNodeToStorageEnclosure - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToStorageEnclosure - - - StorageNodeObjectId - - - - - - - - EnclosureNumber - - - IsPhysicallyConnected - - - HealthStatus - - - SlotOperationalStatus - - - PowerSupplyOperationalStatus - - - FanOperationalStatus - - - TemperatureSensorOperationalStatus - - - VoltageSensorOperationalStatus - - - CurrentSensorOperationalStatus - - - IOControllerOperationalStatus - - - StorageNode - - - StorageEnclosure - - - - - - - - - HealthActionTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthAction - - - - - - 18 - - - - 25 - - - - 25 - - - - - - - - true - - - PercentComplete - - - State - - - StartTime - - - Reason - - - - - - - - - StorageDiagnoseResultListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageDiagnoseResult - - - PerceivedSeverity - - - - - - - - Reason - - - - $($_.RecommendedActions -join "`r`n") - - - - FaultingObjectLocation - - - - FaultingObjectDescription - - - - - - - - StorageDiagnoseResultTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageDiagnoseResult - - - PerceivedSeverity - - - - - - - - - - - - - - true - - - Reason - - - FaultingObjectDescription - - - - - - - - - StorageDiagnoseResultTableView - - Microsoft.Management.Infrastructure.CimMethodStreamedResult#MSFT_StorageHealth#GetReport - - - true - - - true - - - - $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) - $bytesPerSecond = @( "B/S", "KB/S", "MB/S", "GB/S", "TB/S", "PB/S" ) - $Seconds = @( "min", "s", "ms", "us","ns" ) - $nameLength = 0 - $valueLength = 0 - $values = @() - $postFx = @() - - foreach($r in $_.ItemValue.Records) - { - if ($r.Name.Length -gt $nameLength) - { - $nameLength = $r.Name.Length - } - - $localValue="" - switch($r.Units) - { - 0{ - $size = $r.Value; - for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } - - $localValue = "{0}" -f [System.Math]::Round($size,2) - $values += $localValue - $postfx += $postfixes[$i]; - } - 1{ - $size = $r.Value; - for ($i=0; $size -ge 1024 -and $i -lt $bytesPerSecond.Length; $i++) { $size = $size / 1024; } - - $localValue = "{0}" -f [System.Math]::Round($size,2) - $values += $localValue - $postfx += $bytesPerSecond[$i]; - } - 2{ - $localValue = "{0}" -f [System.Math]::Round($r.Value,2) - $values += $localValue - $postfx += "/S"; - } - 3{ - $size = $r.Value; - $i = 1 - if ($size -lt 1) - { - for($i = 1; $size -le 1 -and $i -lt $Seconds.Length; $i++ ) { $size = $size * 1000; } - } - else - { - if($size -gt 60) - { - $size = $size / 60 - $i-- - } - } - - $localValue = "{0}" -f [System.Math]::Round($size,2) - $values += $localValue - $postfx += $Seconds[$i]; - } - 4{ - $localValue = "{0}" -f [System.Math]::Round($r.Value,2) - $values += $localValue - $postfx += "%"; - } - default - { - $values += $r.Value - $postfx += ""; - } - } - - if($localValue.Length -gt $valueLength) - { - $valueLength = $localValue.Length - } - } - $j=0; - foreach($r in $_.ItemValue.Records) - { - $s = "{0,-$nameLength} : {1,$valueLength} {2}" -f @($r.Name, $values[$j], $postfx[$j] ) - Write-host $s - $j++ - } - - write-host "" - - - - - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecord - Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecordUInt64 - Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecordReal64 - - Both - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/Storage.psd1 b/newton-cn/bin/v1.0/Modules/Storage/Storage.psd1 deleted file mode 100644 index 3e78b28..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Storage.psd1 +++ /dev/null @@ -1,213 +0,0 @@ -@{ - GUID = '41486F7D-842F-40F1-ACE4-8405F9C2ED9B' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion = '2.0.0.0' - PowerShellVersion = '5.1' - FormatsToProcess = 'Storage.format.ps1xml' - TypesToProcess = 'Storage.types.ps1xml' - NestedModules = @( - 'Disk.cdxml', - 'DiskImage.cdxml', - 'FileIntegrity.cdxml', - 'FileServer.cdxml', - 'FileShare.cdxml', - 'FileStorageTier.cdxml', - 'InitiatorId.cdxml', - 'InitiatorPort.cdxml', - 'MaskingSet.cdxml', - 'OffloadDataTransferSetting.cdxml', - 'Partition.cdxml', - 'PhysicalDisk.cdxml', - 'ResiliencySetting.cdxml', - 'StorageCmdlets.cdxml', - 'StorageEnclosure.cdxml', - 'StorageJob.cdxml', - 'StorageHealth.cdxml', - 'StorageNode.cdxml', - 'StoragePool.cdxml', - 'StorageProvider.cdxml', - 'StorageReliabilityCounter.cdxml', - 'StorageSetting.cdxml', - 'StorageSubSystem.cdxml', - 'StorageTier.cdxml', - 'TargetPort.cdxml', - 'TargetPortal.cdxml', - 'VirtualDisk.cdxml', - 'Volume.cdxml', - 'StorageScripts.psm1' - ) - AliasesToExport = @( - 'Disable-PhysicalDiskIndication', - 'Disable-StorageDiagnosticLog', - 'Enable-PhysicalDiskIndication', - 'Enable-StorageDiagnosticLog', - 'Flush-Volume', - 'Initialize-Volume', - 'Write-FileSystemCache', - 'Get-PhysicalDiskSNV', - 'Get-DiskSNV', - 'Get-StorageEnclosureSNV' - ) - CmdletsToExport = @() - FunctionsToExport = @( - 'Add-InitiatorIdToMaskingSet', - 'Add-PartitionAccessPath', - 'Add-PhysicalDisk', - 'Add-StorageFaultDomain', - 'Add-TargetPortToMaskingSet', - 'Add-VirtualDiskToMaskingSet', - 'Block-FileShareAccess', - 'Clear-Disk', - 'Clear-FileStorageTier', - 'Clear-StorageDiagnosticInfo', - 'Connect-VirtualDisk', - 'Debug-FileShare', - 'Debug-StorageSubSystem', - 'Debug-Volume', - 'Disable-PhysicalDiskIdentification', - 'Disable-StorageEnclosureIdentification', - 'Disable-StorageEnclosurePower', - 'Disable-StorageHighAvailability', - 'Disable-StorageMaintenanceMode', - 'Disconnect-VirtualDisk', - 'Dismount-DiskImage', - 'Enable-PhysicalDiskIdentification', - 'Enable-StorageEnclosureIdentification', - 'Enable-StorageEnclosurePower', - 'Enable-StorageHighAvailability', - 'Enable-StorageMaintenanceMode', - 'Format-Volume', - 'Get-DedupProperties', - 'Get-Disk', - 'Get-DiskImage', - 'Get-DiskStorageNodeView', - 'Get-FileIntegrity', - 'Get-FileStorageTier', - 'Get-StorageFileServer', - 'Get-FileShare', - 'Get-FileShareAccessControlEntry', - 'Get-InitiatorId', - 'Get-InitiatorPort', - 'Get-MaskingSet', - 'Get-Partition', - 'Get-PartitionSupportedSize', - 'Get-PhysicalDisk', - 'Get-PhysicalDiskStorageNodeView', - 'Get-PhysicalExtent', - 'Get-PhysicalExtentAssociation', - 'Get-ResiliencySetting', - 'Get-StorageAdvancedProperty', - 'Get-StorageChassis', - 'Get-StorageDiagnosticInfo', - 'Get-StorageEnclosure', - 'Get-StorageEnclosureStorageNodeView', - 'Get-StorageEnclosureVendorData', - 'Get-StorageExtendedStatus', - 'Get-StorageFaultDomain', - 'Get-StorageFirmwareInformation', - 'Get-StorageHealthAction', - 'Get-StorageHealthReport', - 'Get-StorageHealthSetting', - 'Get-StorageJob', - 'Get-StorageNode', - 'Get-StorageHistory', - 'Get-StoragePool', - 'Get-StorageProvider', - 'Get-StorageRack', - 'Get-StorageReliabilityCounter', - 'Get-StorageScaleUnit', - 'Get-StorageSetting', - 'Get-StorageSite', - 'Get-StorageSubSystem', - 'Get-StorageTier', - 'Get-StorageTierSupportedSize', - 'Get-SupportedFileSystems', - 'Get-SupportedClusterSizes', - 'Get-TargetPort', - 'Get-TargetPortal', - 'Get-VirtualDisk', - 'Get-VirtualDiskSupportedSize', - 'Get-OffloadDataTransferSetting' - 'Get-Volume', - 'Get-VolumeCorruptionCount', - 'Get-VolumeScrubPolicy', - 'Grant-FileShareAccess', - 'Hide-VirtualDisk', - 'Initialize-Disk', - 'Mount-DiskImage', - 'New-MaskingSet', - 'New-Partition', - 'New-StorageFileServer', - 'New-FileShare', - 'New-StoragePool', - 'New-StorageSubsystemVirtualDisk', - 'New-StorageTier', - 'New-VirtualDisk', - 'New-VirtualDiskClone', - 'New-VirtualDiskSnapshot', - 'New-Volume', - 'Optimize-Volume', - 'Optimize-StoragePool' - 'Register-StorageSubsystem', - 'Remove-FileShare', - 'Remove-InitiatorId', - 'Remove-InitiatorIdFromMaskingSet', - 'Remove-MaskingSet', - 'Remove-Partition', - 'Remove-PartitionAccessPath', - 'Remove-PhysicalDisk', - 'Remove-StorageFaultDomain', - 'Remove-StorageFileServer', - 'Remove-StorageHealthIntent', - 'Remove-StorageHealthSetting', - 'Remove-StoragePool', - 'Remove-StorageTier', - 'Remove-TargetPortFromMaskingSet', - 'Remove-VirtualDisk', - 'Remove-VirtualDiskFromMaskingSet', - 'Rename-MaskingSet', - 'Repair-FileIntegrity', - 'Repair-VirtualDisk', - 'Repair-Volume', - 'Reset-PhysicalDisk', - 'Reset-StorageReliabilityCounter', - 'Resize-Partition', - 'Resize-StorageTier', - 'Resize-VirtualDisk', - 'Revoke-FileShareAccess', - 'Set-Disk', - 'Set-FileIntegrity', - 'Set-FileStorageTier', - 'Set-FileShare', - 'Set-InitiatorPort', - 'Set-Partition', - 'Set-PhysicalDisk', - 'Set-ResiliencySetting', - 'Set-StorageFileServer', - 'Set-StorageHealthSetting', - 'Set-StoragePool', - 'Set-StorageProvider', - 'Set-StorageSetting', - 'Set-StorageSubSystem', - 'Set-StorageTier', - 'Set-VirtualDisk', - 'Set-Volume', - 'Set-VolumeScrubPolicy', - 'Show-StorageHistory', - 'Show-VirtualDisk', - 'Start-StorageDiagnosticLog', - 'Stop-StorageDiagnosticLog', - 'Stop-StorageJob', - 'Unregister-StorageSubsystem', - 'Unblock-FileShareAccess', - 'Update-Disk', - 'Update-HostStorageCache', - 'Update-StorageFirmware', - 'Update-StoragePool', - 'Update-StorageProviderCache', - 'Write-VolumeCache') - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390832" - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Storage/Storage.types.ps1xml b/newton-cn/bin/v1.0/Modules/Storage/Storage.types.ps1xml deleted file mode 100644 index 7109033..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Storage.types.ps1xml +++ /dev/null @@ -1,3472 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Disk - - - DiskNumber - Number - - - PartitionStyle - - switch ($this.psBase.CimInstanceProperties["PartitionStyle"].Value) - { - 0 { "RAW" } - 1 { "MBR" } - 2 { "GPT" } - Default { "Unknown" } - } - - - - ProvisioningType - - switch ($this.psBase.CimInstanceProperties["ProvisioningType"].Value) - { - 0 { "Unknown" } - 1 { "Thin" } - 2 { "Fixed" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53264 { $_status += "Online" } - 53265 { $_status += "Not Ready" } - 53266 { $_status += "No Media" } - 53267 { $_status += "Offline" } - 53268 { $_status += "Failed" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - Default { "Unknown" } - } - - - - BusType - - switch ($this.psBase.CimInstanceProperties["BusType"].Value) - { - 0 { "Unknown" } - 1 { "SCSI" } - 2 { "ATAPI" } - 3 { "ATA" } - 4 { "1394" } - 5 { "SSA" } - 6 { "Fibre Channel" } - 7 { "USB" } - 8 { "RAID" } - 9 { "iSCSI" } - 10 { "SAS" } - 11 { "SATA" } - 12 { "SD" } - 13 { "MMC" } - 14 { "Virtual" } - 15 { "File Backed Virtual" } - 16 { "Spaces" } - 17 { "NVMe" } - 18 { "SCM" } - 19 { "UFS" } - Default { "Unknown" } - } - - - - UniqueIdFormat - - switch ($this.psBase.CimInstanceProperties["UniqueIdFormat"].Value) - { - 0 { "Vendor Specific" } - 1 { "Vendor Id" } - 2 { "EUI64" } - 3 { "FCPH Name" } - 8 { "SCSI Name String" } - } - - - - OfflineReason - - switch ($this.psBase.CimInstanceProperties["OfflineReason"].Value) - { - 1 { "Policy" } - 2 { "Redundant Path" } - 3 { "Snapshot" } - 4 { "Collision" } - 5 { "Resource Exhaustion" } - 6 { "Critical Write Failures" } - 7 { "Data Integrity Scan Required" } - Default { $null } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Partition - - - OperationalStatus - - switch ($this.psBase.CimInstanceProperties["OperationalStatus"].Value) - { - 0 { "Unknown" } - 1 { "Online" } - 3 { "No Media" } - 5 { "Failed" } - 4 { "Offline" } - Default { "Unknown" } - } - - - - Type - - if ($this.psBase.CimInstanceProperties["MbrType"].Value -gt 0) - { - switch ($this.psBase.CimInstanceProperties["MbrType"].Value) - { - 1 { "FAT12" } - 2 { "Xenix" } - 3 { "Xenix" } - 4 { "FAT16" } - 5 { "Extended" } - 6 { "Logical" } - 7 { "IFS" } - 10 { "OS/2 BootMgr" } - 11 { "FAT32" } - 12 { "FAT32 XINT13" } - 14 { "XINT13" } - 15 { "XINT13 Extended" } - 65 { "PReP" } - 66 { "LDM" } - 99 { "Unix" } - 231 { "Space Protective" } - Default { "Unknown" } - } - } - else - { - switch ($this.psBase.CimInstanceProperties["GptType"].Value) - { - "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" { "System" } - "{e3c9e316-0b5c-4db8-817d-f92df00215ae}" { "Reserved" } - "{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}" { "Basic" } - "{5808c8aa-7e8f-42e0-85d2-e1e90434cfb3}" { "LDM Metadata" } - "{af9b60a0-1431-4f62-bc68-3311714a69ad}" { "LDM Data" } - "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}" { "Recovery" } - "{e75caf8f-f680-4cee-afa3-b001e56efc2d}" { "Space Protective" } - "{eeff8352-dd2a-44db-ae83-bee1cf7481dc}" { "S2D Cache" } - "{03aaa829-ebfc-4e7e-aac9-c4d76c63b24b}" { "S2D Cache Metadata" } - Default { "Unknown" } - } - } - - - - DiskPath - - if ( $this.psBase.CimInstanceProperties["DiskId"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - $this.psBase.CimInstanceProperties["DiskId"].Value - } - else - { - $null - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_VirtualDisk - - - Usage - - if ( $this.psBase.CimInstanceProperties["Usage"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["Usage"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "Unrestricted" } - 3 { "Reserved for ComputerSystem (the block server)" } - 4 { "Reserved by Replication Services" } - 5 { "Reserved by Migration Services" } - 6 { "Local Replica Source" } - 7 { "Remote Replica Source" } - 8 { "Local Replica Target" } - 9 { "Remote Replica Target" } - 10 { "Local Replica Source or Target" } - 11 { "Remote Replica Source or Target" } - 12 { "Delta Replica Target" } - 13 { "Element Component" } - 14 { "Reserved as Pool Contributer" } - 15 { "Composite Volume Member" } - 16 { "Composite LogicalDisk Member" } - 17 { "Reserved for Sparing" } - 18 { "Configuration" } - 19 { "Data" } - 20 { "Journal" } - 21 { "Read Cache" } - 22 { "Write Cache" } - 23 { "Dirty Region Tracking" } - 24 { "Valid Data Tracking" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - NameFormat - - if ( $this.psBase.CimInstanceProperties["NameFormat"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["NameFormat"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "VPD83NAA6" } - 3 { "VPD83NAA5" } - 4 { "VPD83Type2" } - 5 { "VPD83Type1" } - 6 { "VPD83Type0" } - 7 { "SNVM" } - 8 { "NodeWWN" } - 9 { "NAA" } - 10 { "EUI64" } - 11 { "T10VID" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53250 { $_status += "Detached" } - 53251 { $_status += "Incomplete" } - 53275 { $_status += "Suboptimal" } - 53284 { $_status += "No Redundancy" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - ProvisioningType - - if ( $this.psBase.CimInstanceProperties["ProvisioningType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ProvisioningType"].Value) - { - 0 { "Unknown" } - 1 { "Thin" } - 2 { "Fixed" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - AllocationUnitSize - - if ( $this.psBase.CimInstanceProperties["AllocationUnitSize"].Value -eq [System.UInt64]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["AllocationUnitSize"].Value - } - - - - MediaType - - if ( $this.psBase.CimInstanceProperties["MediaType"].Flags.HasFlag( [Microsoft.Management.Infrastructure.CimFlags]::NullValue ) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["MediaType"].Value ) - { - 0 { "Unspecified" } - 3 { "HDD" } - 4 { "SSD" } - 5 { "SCM" } - Default { "Unspecified" } - } - } - else - { - $null - } - - - - ParityLayout - - if ( $this.psBase.CimInstanceProperties["ParityLayout"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ParityLayout"].Value) - { - 1 { "Non-rotated Parity" } - 2 { "Rotated Parity" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - Access - - if ( $this.psBase.CimInstanceProperties["Access"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["Access"].Value) - { - 0 { "Unknown" } - 1 { "Readable" } - 2 { "Writeable" } - 3 { "Read/Write" } - 4 { "Write Once" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - UniqueIdFormat - - if ( $this.psBase.CimInstanceProperties["UniqueIdFormat"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["UniqueIdFormat"].Value) - { - 0 { "Vendor Specific" } - 1 { "Vendor Id" } - 2 { "EUI64" } - 3 { "FCPH Name" } - 8 { "SCSI Name String" } - } - } - else - { - $null - } - - - - DetachedReason - - if ( $this.psBase.CimInstanceProperties["DetachedReason"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["DetachedReason"].Value) - { - 0 { "Unknown" } - 1 { "None" } - 2 { "By Policy" } - 3 { "Majority Disks Unhealthy" } - 4 { "Incomplete" } - 5 { "Timeout" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - WriteCacheSize - - if ( $this.psBase.CimInstanceProperties["WriteCacheSize"].Value -eq [System.UInt64]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["WriteCacheSize"].Value - } - - - - FaultDomainAwareness - - if ( $this.psBase.CimInstanceProperties["FaultDomainAwareness"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["FaultDomainAwareness"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - ColumnIsolation - - if ( $this.psBase.CimInstanceProperties["ColumnIsolation"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ColumnIsolation"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - GetSecurityDescriptor - - - - SetSecurityDescriptor - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageFaultDomain - - - ClassName - - if ($this.CimClass -ne $null) { $this.CimClass.CimClassName } else {""} - - - - HealthStatus - - switch ( $this.psBase.CimInstanceProperties["HealthStatus"].Value ) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53252 { $_status += "Failed Media" } - 53253 { $_status += "Split" } - 53254 { $_status += "Stale Metadata" } - 53255 { $_status += "IO Error" } - 53256 { $_status += "Unrecognized Metadata" } - 53269 { $_status += "Removing From Pool" } - 53270 { $_status += "In Maintenance Mode" } - 53271 { $_status += "Updating Firmware" } - 53272 { $_status += "Device Hardware Error" } - 53273 { $_status += "Not Usable" } - 53274 { $_status += "Transient Error" } - 53276 { $_status += "Starting Maintenance Mode"} - 53277 { $_status += "Stopping Maintenance Mode"} - 53285 { $_status += "Threshold Exceeded"} - 53286 { $_status += "Abnormal Latency"} - Default { $_status += "Unknown" } - } - } - $_status; - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PhysicalDisk - - - Usage - - if ( $this.psBase.CimInstanceProperties["Usage"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["Usage"].Value ) - { - 0 { "Unknown" } - 1 { "Auto-Select" } - 2 { "Manual-Select" } - 3 { "Hot Spare" } - 4 { "Retired" } - 5 { "Journal" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53252 { $_status += "Failed Media" } - 53253 { $_status += "Split" } - 53254 { $_status += "Stale Metadata" } - 53255 { $_status += "IO Error" } - 53256 { $_status += "Unrecognized Metadata" } - 53269 { $_status += "Removing From Pool" } - 53270 { $_status += "In Maintenance Mode" } - 53271 { $_status += "Updating Firmware" } - 53272 { $_status += "Device Hardware Error" } - 53273 { $_status += "Not Usable" } - 53274 { $_status += "Transient Error" } - 53276 { $_status += "Starting Maintenance Mode"} - 53277 { $_status += "Stopping Maintenance Mode"} - 53285 { $_status += "Threshold Exceeded"} - 53286 { $_status += "Abnormal Latency"} - Default { "Unknown" } - } - } - $_status; - - - - UniqueIdFormat - - if ( $this.psBase.CimInstanceProperties["UniqueIdFormat"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["UniqueIdFormat"].Value) - { - 0 { "Vendor Specific" } - 1 { "Vendor Id" } - 2 { "EUI64" } - 3 { "FCPH Name" } - 8 { "SCSI Name String" } - } - } - else - { - $null - } - - - - HealthStatus - - switch ( $this.psBase.CimInstanceProperties["HealthStatus"].Value ) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - BusType - - if ( $this.psBase.CimInstanceProperties["BusType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["BusType"].Value ) - { - 0 { "Unknown" } - 1 { "SCSI" } - 2 { "ATAPI" } - 3 { "ATA" } - 4 { "1394" } - 5 { "SSA" } - 6 { "Fibre Channel" } - 7 { "USB" } - 8 { "RAID" } - 9 { "iSCSI" } - 10 { "SAS" } - 11 { "SATA" } - 12 { "SD" } - 13 { "MMC" } - 14 { "Virtual" } - 15 { "File Backed Virtual" } - 16 { "Spaces" } - 17 { "NVMe" } - 18 { "SCM" } - 19 { "UFS" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - CannotPoolReason - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["CannotPoolReason"].Value ) - { - switch ( $status ) - { - 0 { $_status += "Unknown" } - 1 { $_status += "Other" } - 2 { $_status += "In a Pool" } - 3 { $_status += "Not Healthy" } - 4 { $_status += "Removable Media" } - 5 { $_status += "In Use by Cluster" } - 6 { $_status += "Offline" } - 7 { $_status += "Insufficient Capacity" } - 8 { $_status += "Spare Disk" } - 9 { $_status += "Reserved by Subsystem" } - 10 { $_status += "Starting" } - 11 { $_status += "Partial SCM" } - 12 { $_status += "Discovery Disabled" } - 32768 { $_status += "Verification in progress" } - 32769 { $_status += "Verification failed" } - 32770 { $_status += "Firmware not compliant" } - 32771 { $_status += "Hardware not compliant" } - Default { "Unknown" } - } - } - $_status; - - - - SupportedUsages - - $_usages = @(); - foreach ( $_usage in $this.psBase.CimInstanceProperties["SupportedUsages"].Value ) - { - switch ( $_usage ) - { - 1 { $_usages += "Auto-Select" } - 2 { $_usages += "Manual-Select" } - 3 { $_usages += "Hot Spare" } - 4 { $_usages += "Retired" } - 5 { $_usages += "Journal" } - Default { "Unknown" } - } - } - $_usages; - - - - MediaType - - switch ( $this.psBase.CimInstanceProperties["MediaType"].Value ) - { - 0 { "Unspecified" } - 3 { "HDD" } - 4 { "SSD" } - 5 { "SCM" } - Default { "Unspecified" } - } - - - - SpindleSpeed - - $speed = $this.psBase.CimInstanceProperties["SpindleSpeed"].Value; - if ( $speed -eq [System.UInt32]::MaxValue ) { - "Unknown"; - } - else - { - $speed; - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageEnclosure - - - BusType - - switch ($this.psBase.CimInstanceProperties["BusType"].Value) - { - 0 { "Unknown" } - 1 { "SCSI" } - 2 { "ATAPI" } - 3 { "ATA" } - 4 { "1394" } - 5 { "SSA" } - 6 { "Fibre Channel" } - 7 { "USB" } - 8 { "RAID" } - 9 { "iSCSI" } - 10 { "SAS" } - 11 { "SATA" } - 12 { "SD" } - 13 { "MMC" } - 14 { "Virtual" } - 15 { "File Backed Virtual" } - 16 { "Spaces" } - 17 { "NVMe" } - 18 { "SCM" } - 19 { "UFS" } - Default { "Unknown" } - } - - - - HealthStatus - - switch ( $this.psBase.CimInstanceProperties["HealthStatus"].Value ) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53250 { $_status += "Detached" } - 53251 { $_status += "Incomplete" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - SlotOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["SlotOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - PowerSupplyOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["PowerSupplyOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - FanOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["FanOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - TemperatureSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["TemperatureSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - VoltageSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["VoltageSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - CurrentSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["CurrentSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - IOControllerOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["IOControllerOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNode - - - NameFormat - - if ( $this.psBase.CimInstanceProperties["NameFormat"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["NameFormat"].Value) - { - 1 { "Other" } - 2 { "IP" } - 3 { "Dial" } - 4 { "HID" } - 5 { "NWA" } - 6 { "HWA" } - 7 { "X25" } - 8 { "ISDN" } - 9 { "IPX" } - 10 { "DCC" } - 11 { "ICD" } - 12 { "E.164" } - 13 { "SNA" } - 14 { "OID/OSI" } - 15 { "WWN" } - 16 { "NAA" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - OperationalStatus - - switch ($this.psBase.CimInstanceProperties["OperationalStatus"].Value) - { - 0 { "Unknown" } - 2 { "Up" } - 6 { "Down" } - 8 { "Joining" } - 10 { "Paused" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StoragePool - - - Usage - - if ( $this.psBase.CimInstanceProperties["Usage"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["Usage"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "Unrestricted" } - 3 { "Reserved for ComputerSystem (the block server)" } - 4 { "Reserved as a Delta Replica Container" } - 5 { "Reserved for Migration Services" } - 6 { "Reserved for Local Replication Services" } - 7 { "Reserved for Remote Replication Services" } - 8 { "Reserved for Sparing" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53248 { $_status += "Read-only" } - 53249 { $_status += "Incomplete" } - Default { "Unknown" } - } - } - $_status; - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - ProvisioningTypeDefault - - if ( $this.psBase.CimInstanceProperties["ProvisioningTypeDefault"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ProvisioningTypeDefault"].Value) - { - 0 { "Unknown" } - 1 { "Thin" } - 2 { "Fixed" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - SupportedProvisioningTypes - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["SupportedProvisioningTypes"].Value ) - { - switch ( $status ) - { - 0 { $_status += "Unknown" } - 1 { $_status += "Thin" } - 2 { $_status += "Fixed" } - Default { "Unknown" } - } - } - $_status; - - - - MediaTypeDefault - - if ( $this.psBase.CimInstanceProperties["MediaTypeDefault"].Flags.HasFlag( [Microsoft.Management.Infrastructure.CimFlags]::NullValue ) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["MediaTypeDefault"].Value ) - { - 0 { "Unspecified" } - 3 { "HDD" } - 4 { "SSD" } - 5 { "SCM" } - Default { "Unspecified" } - } - } - else - { - $null - } - - - - ReadOnlyReason - - if ( $this.psBase.CimInstanceProperties["ReadOnlyReason"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ReadOnlyReason"].Value) - { - 0 { "Unknown" } - 1 { "None" } - 2 { "By Policy" } - 3 { "Majority Disks Unhealthy" } - 4 { "Starting" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - RepairPolicy - - if ( $this.psBase.CimInstanceProperties["RepairPolicy"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["RepairPolicy"].Value ) - { - 2 { "Sequential" } - 3 { "Parallel" } - Default { "Parallel" } - } - } - else - { - $null - } - - - - RetireMissingPhysicalDisks - - if ( $this.psBase.CimInstanceProperties["RetireMissingPhysicalDisks"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["RetireMissingPhysicalDisks"].Value ) - { - 0 { "Unknown" } - 1 { "Auto" } - 2 { "Always" } - 3 { "Never" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - WriteCacheSizeDefault - - if ( $this.psBase.CimInstanceProperties["WriteCacheSizeDefault"].Value -eq [System.UInt64]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["WriteCacheSizeDefault"].Value - } - - - - Version - - # ScVersionWindows8 - if ( $this.psBase.CimInstanceProperties["Version"].Value -eq 1 ) - { - "Windows Server 2012" - } - - # ScVersionWindowsBlueInternal1 - # ScVersionWindowsBlueInternal2 - # ScVersionWindowsBlueInternal3 - # ScVersionWindowsBlueInternal4 - # ScVersionWindowsBlueInternal5 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 2 ) - { - "Windows Server 2012 R2 Preview" - } - - # ScVersionWindowsBlue - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 3 ) - { - "Windows Server 2012 R2" - } - - # ScVersionWindowsThresholdInternal1 - # ScVersionWindowsThresholdInternal2 - # ScVersionWindowsThresholdInternal3 - # ScVersionWindowsThresholdInternal4 - # ScVersionWindowsThresholdInternal5 - # ScVersionWindowsThresholdInternal6 - # ScVersionWindowsThreshold - # ScVersionWindowsThreshold2 - # ScVersionWindowsRedstone1Internal1 - # ScVersionWindowsRedstone1Internal2 - # ScVersionWindowsRedstone1Internal3 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -ge 4 -and $this.psBase.CimInstanceProperties["Version"].Value -le 18 ) - { - "Windows Server 2016 Preview" - } - - # ScVersionWindowsRedstone1 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 19 ) - { - "Windows Server 2016" - } - - # ScVersionWindowsRedstone3 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 20 ) - { - "Windows Server 2016 RS3" - } - - # ScVersionWindowsRedstone5Internal1 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 21 ) - { - "Windows Server 2019 Preview" - } - - # ScVersionWindowsRedstone5 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -eq 22 ) - { - "Windows Server 2019" - } - - # >= ScVersionWindows19H1Internal1 - elseif ( $this.psBase.CimInstanceProperties["Version"].Value -ge 23 ) - { - "Windows Server vNext" - } - - - - FaultDomainAwarenessDefault - - switch ($this.psBase.CimInstanceProperties["FaultDomainAwarenessDefault"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - - - - GetSecurityDescriptor - - - - SetSecurityDescriptor - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_ResiliencySetting - - - ParityLayout - - if ( $this.psBase.CimInstanceProperties["ParityLayout"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ParityLayout"].Value) - { - 1 { "Non-rotated Parity" } - 2 { "Rotated Parity" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - NumberOfColumnsDefault - - if ( $this.psBase.CimInstanceProperties["NumberOfColumnsDefault"].Value -eq [System.UInt16]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["NumberOfColumnsDefault"].Value - } - - - - NumberOfGroupsDefault - - if ( $this.psBase.CimInstanceProperties["NumberOfGroupsDefault"].Value -eq [System.UInt16]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["NumberOfGroupsDefault"].Value - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider - - - Type - - switch ($this.psBase.CimInstanceProperties["Type"].Value) - { - 1 { "SMP" } - 2 { "SMI-S" } - Default { "Unknown" } - } - - - - RemoteSubsystemCacheMode - - switch ($this.psBase.CimInstanceProperties["RemoteSubsystemCacheMode"].Value) - { - 0 { "Unknown" } - 2 { "Disabled" } - 3 { "Manual-Discovery" } - Default { "Unknown" } - } - - - - SupportedRemoteSubsystemCacheModes - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["SupportedRemoteSubsystemCacheModes"].Value ) - { - switch ( $status ) - { - 0 { $_status += "Unknown" } - 2 { $_status += "Disabled" } - 3 { $_status += "Manual-Discovery" } - Default { "Unknown" } - } - } - $_status; - - - - GetSecurityDescriptor - - - - SetSecurityDescriptor - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageSubSystem - - - NameFormat - - if ( $this.psBase.CimInstanceProperties["NameFormat"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["NameFormat"].Value) - { - 1 { "Other" } - 2 { "IP" } - 3 { "Dial" } - 4 { "HID" } - 5 { "NWA" } - 6 { "HWA" } - 7 { "X25" } - 8 { "ISDN" } - 9 { "IPX" } - 10 { "DCC" } - 11 { "ICD" } - 12 { "E.164" } - 13 { "SNA" } - 14 { "OID/OSI" } - 15 { "WWN" } - 16 { "NAA" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - FaultDomainAwarenessDefault - - switch ($this.psBase.CimInstanceProperties["FaultDomainAwarenessDefault"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - - - - MaskingValidInitiatorIdTypes - - $_type = @(); - foreach ( $type in $this.psBase.CimInstanceProperties["MaskingValidInitiatorIdTypes"].Value ) - { - switch ( $type ) - { - 1 { $_type += "Other" } - 2 { $_type += "Port WWN" } - 3 { $_type += "Node WWN" } - 4 { $_type += "Host Name" } - 5 { $_type += "iSCSI Name" } - 6 { $_type += "Switch WWN" } - 7 { $_type += "SAS Address" } - Default { $_type += "Unknown" } - } - } - $_type; - - - - MaskingPortsPerView - - switch ($this.psBase.CimInstanceProperties["MaskingPortsPerView"].Value) - { - 2 { "One TargetPort per view" } - 3 { "Multiple target ports per view" } - 4 { "All target ports share the same view" } - Default { "Unknown" } - } - - - - DataTieringType - - if ( $this.psBase.CimInstanceProperties["DataTieringType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["DataTieringType"].Value) - { - 0 { "Unknown" } - 1 { "Not Supported" } - 2 { "Manual" } - 3 { "Auto" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - iSCSITargetCreationScheme - - if ( $this.psBase.CimInstanceProperties["iSCSITargetCreationScheme"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["iSCSITargetCreationScheme"].Value) - { - 0 { "Unknown" } - 1 { "Not Supported" } - 2 { "Manual" } - 3 { "Auto" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - SupportedHostType - - $_type = @(); - foreach ( $type in $this.psBase.CimInstanceProperties["SupportedHostType"].Value ) - { - switch ( $type ) - { - 0 { $_type += "Unknown" } - 1 { $_type += "Other" } - 2 { $_type += "Standard" } - 3 { $_type += "Solaris" } - 4 { $_type += "HPUX" } - 5 { $_type += "OpenVMS" } - 6 { $_type += "Tru64" } - 7 { $_type += "Netware" } - 8 { $_type += "Sequent" } - 9 { $_type += "AIX" } - 10 { $_type += "DGUX" } - 11 { $_type += "Dynix" } - 12 { $_type += "Irix" } - 13 { $_type += "Cisco iSCSI Storage Router" } - 14 { $_type += "Linux" } - 15 { $_type += "Microsoft Windows" } - 16 { $_type += "OS400" } - 17 { $_type += "TRESPASS" } - 18 { $_type += "HI-UX" } - 19 { $_type += "VMware ESXi" } - 20 { $_type += "Microsoft Windows Server 2008" } - 21 { $_type += "Microsoft Windows Server 2003" } - Default { $_type += "Unknown" } - } - } - $_type; - - - - SupportedDeduplicationObjectTypes - - $_type = @(); - foreach ( $type in $this.psBase.CimInstanceProperties["SupportedDeduplicationObjectTypes"].Value ) - { - switch ( $type ) - { - 2 { $_type += "Volume" } - 4 { $_type += "VirtualDisk" } - 8 { $_type += "Partition" } - 16 { $_type += "StoragePool" } - Default { $_type += "Unknown" } - } - } - $_type; - - - - SupportedDeduplicationFileSystemTypes - - $_type = @(); - foreach ( $type in $this.psBase.CimInstanceProperties["SupportedDeduplicationFileSystemTypes"].Value ) - { - switch ( $type ) - { - 0 { $_type += "Unknown" } - 1 { $_type += "Threshold" } - 2 { $_type += "UFS" } - 3 { $_type += "HFS" } - 4 { $_type += "FAT" } - 5 { $_type += "FAT16" } - 6 { $_type += "FAT32" } - 7 { $_type += "NTFS4" } - 8 { $_type += "NTFS5" } - 9 { $_type += "XFS" } - 10 { $_type += "AFS" } - 11 { $_type += "EXT2" } - 12 { $_type += "EXT3" } - 13 { $_type += "ReiserFS" } - 14 { $_type += "NTFS" } - 15 { $_type += "ReFS" } - 32768 { $_type += "CSVFS_NTFS" } - 32769 { $_type += "CSVFS_ReFS" } - Default { $_type += "Unknown" } - } - } - $_type; - - - - SupportedFileSystems - - $_type = @(); - foreach ( $type in $this.psBase.CimInstanceProperties["SupportedFileSystems"].Value ) - { - switch ( $type ) - { - 0 { $_type += "Unknown" } - 2 { $_type += "UFS" } - 3 { $_type += "HFS" } - 4 { $_type += "FAT" } - 5 { $_type += "FAT16" } - 6 { $_type += "FAT32" } - 7 { $_type += "NTFS4" } - 8 { $_type += "NTFS5" } - 9 { $_type += "XFS" } - 10 { $_type += "AFS" } - 11 { $_type += "EXT2" } - 12 { $_type += "EXT3" } - 13 { $_type += "ReiserFS" } - 14 { $_type += "NTFS" } - 15 { $_type += "ReFS" } - 32768 { $_type += "CSVFS_NTFS" } - 32769 { $_type += "CSVFS_ReFS" } - Default { $_type += "Unknown" } - } - } - $_type; - - - - StorageConnectionType - - switch ( $this.psBase.CimInstanceProperties["StorageConnectionType"].Value ) - { - 0 { "Unknown" } - 1 { "Shared Storage" } - 2 { "Local Storage" } - Default { "Unknown" } - } - - - - SupportedFileServerProtocols - - $_protos = @(); - foreach ( $p in $this.psBase.CimInstanceProperties["SupportedFileServerProtocols"].Value ) - { - switch ( $p ) - { - 2 { $_protos += "NFS" } - 3 { $_protos += "SMB" } - Default { "Unknown" } - } - } - $_protos; - - - - GetSecurityDescriptor - - - - SetSecurityDescriptor - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_Volume - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53261 { $_status += "Scan Needed" } - 53262 { $_status += "Spot Fix Needed" } - 53263 { $_status += "Full Repair Needed" } - 53267 { $_status += "Offline" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - Default { "Unknown" } - } - - - - DriveType - - switch ($this.psBase.CimInstanceProperties["DriveType"].Value) - { - 0 { "Unknown" } - 1 { "Invalid Root Path" } - 2 { "Removable" } - 3 { "Fixed" } - 4 { "Remote" } - 5 { "CD-ROM" } - 6 { "RAM Disk" } - Default { "Unknown" } - } - - - - FileSystemType - - switch ($this.psBase.CimInstanceProperties["FileSystemType"].Value) - { - 0 { "Unknown" } - 2 { "UFS" } - 3 { "HFS" } - 4 { "FAT" } - 5 { "FAT16" } - 6 { "FAT32" } - 7 { "NTFS4" } - 8 { "NTFS5" } - 9 { "XFS" } - 10 { "AFS" } - 11 { "EXT2" } - 12 { "EXT3" } - 13 { "ReiserFS" } - 14 { "NTFS" } - 15 { "ReFS" } - 32768 { "CSVFS_NTFS" } - 32769 { "CSVFS_ReFS" } - Default { $null } - } - - - - DedupMode - - switch ($this.psBase.CimInstanceProperties["DedupMode"].Value) - { - 0 { "Disabled" } - 1 { "GeneralPurpose" } - 2 { "HyperV" } - 3 { "Backup" } - 4 { "NotAvailable" } - Default { "Unknown" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_TargetPort - - - ConnectionType - - if ( $this.psBase.CimInstanceProperties["ConnectionType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ConnectionType"].Value) - { - 1 { "Other" } - 2 { "Fibre Channel" } - 3 { "Parallel SCSI" } - 4 { "SSA" } - 5 { "IEEE 1394" } - 6 { "RDMA" } - 7 { "iSCSI" } - 8 { "SAS" } - 9 { "ADT " } - } - } - else - { - $null - } - - - - Role - - if ( $this.psBase.CimInstanceProperties["Role"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["Role"].Value) - { - 0 { "Unknown" } - 1 { "Initiator" } - 2 { "Target" } - 3 { "Both Initiator and Target" } - } - } - else - { - $null; - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - Default { "Unknown" } - } - - - - LinkTechnology - - if ( $this.psBase.CimInstanceProperties["LinkTechnology"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["LinkTechnology"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "Ethernet" } - 3 { "IB" } - 4 { "FC" } - 5 { "FDDI" } - 6 { "ATM" } - 7 { "Token Ring" } - 8 { "Frame Relay" } - 9 { "Infrared" } - 10 { "Bluetooth" } - 11 { "Wireless LAN" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - PortType - - if ( $this.psBase.CimInstanceProperties["PortType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["PortType"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 10 { "N" } - 11 { "NL" } - 12 { "F/NL" } - 13 { "Nx" } - 14 { "E" } - 15 { "F" } - 16 { "FL" } - 17 { "B" } - 18 { "G" } - 50 {"10BaseT" } - 51 { "10-100BaseT" } - 52 { "100BaseT" } - 53 { "1000BaseT" } - 54 { "2500BaseT" } - 55 { "10GBaseT" } - 56 { "10GBase-CX4" } - 94 { "SAS" } - 100 { "100Base-FX" } - 101 { "100Base-SX" } - 102 { "1000Base-SX" } - 103 { "1000Base-LX" } - 104 { "1000Base-CX" } - 105 { "10GBase-SR" } - 106 { "10GBase-SW" } - 107 { "10GBase-LX4" } - 108 { "10GBase-LR" } - 109 { "10GBase-LW" } - 110 { "10GBase-ER" } - 111 { "10GBase-EW" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - UsageRestriction - - if ( $this.psBase.CimInstanceProperties["UsageRestriction"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["UsageRestriction"].Value) - { - 0 { "Unknown" } - 2 { "Front-end only" } - 3 { "Back-end only" } - 4 { "Not restricted" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorId - - - Type - - if ( $this.psBase.CimInstanceProperties["Type"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["Type"].Value) - { - 1 { "Other" } - 2 { "PortWWN" } - 3 { "NodeWWN" } - 4 { "Hostname" } - 5 { "iSCSI Name" } - 6 { "SwitchWWN" } - 7 { "SASAddress" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - HostType - - if ( $this.psBase.CimInstanceProperties["HostType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["HostType"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "Standard" } - 3 { "Solaris" } - 4 { "HPUX" } - 5 { "OpenVMS" } - 6 { "Tru64" } - 7 { "Netware" } - 8 { "Sequent" } - 9 { "AIX" } - 10 { "DGUX" } - 11 { "Dynix" } - 12 { "Irix" } - 13 { "Cisco iSCSI Storage Router" } - 14 { "Linux" } - 15 { "Microsoft Windows" } - 16 { "OS400" } - 17 { "TRESPASS" } - 18 { "HI-UX" } - 19 { "VMware ESXi" } - 20 { "Microsoft Windows Server 2008" } - 21 { "Microsoft Windows Server 2003" } - Default { "Unknown" } - } - } - else - { - $null; - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorPort - - - PortType - - switch ($this.psBase.CimInstanceProperties["PortType"].Value) - { - 1 { "Unknown" } - 2 { "Other" } - 3 { "Not present" } - 5 { "Fabric" } - 6 { "Public Loop" } - 7 { "FL Port" } - 8 { "Fabric Port" } - 9 { "Fabric expansion port" } - 10 { "Generic Fabric Port" } - 20 { "Private Loop" } - 21 { "Point to Point" } - Default { "Unknown" } - } - - - - ConnectionType - - switch ($this.psBase.CimInstanceProperties["ConnectionType"].Value) - { - 0 { "Other" } - 1 { "Fibre Channel" } - 2 { "iSCSI" } - 3 { "SAS" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Unknown" } - 2 { $_status += "Operational" } - 3 { $_status += "User Offline" } - 4 { $_status += "Bypassed" } - 5 { $_status += "In diagnostics mode" } - 6 { $_status += "Link Down" } - 7 { $_status += "Port Error" } - 8 { $_status += "Loopback" } - } - } - $_status; - - - - PortSupportedSpeed - - switch ($this.psBase.CimInstanceProperties["PortSupportedSpeed"].Value) - { - 1 { "1 GBit/sec" } - 2 { "2 GBit/sec" } - 4 { "10 GBit/sec" } - 8 { "4 GBit/sec" } - Default { "Unknown" } - } - - - - PortSpeed - - switch ($this.psBase.CimInstanceProperties["PortSpeed"].Value) - { - 1 { "1 GBit/sec" } - 2 { "2 GBit/sec" } - 4 { "10 GBit/sec" } - 8 { "4 GBit/sec" } - Default { "Unknown" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_MaskingSet - - - HostType - - if ( $this.psBase.CimInstanceProperties["HostType"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["HostType"].Value) - { - 0 { "Unknown" } - 1 { "Other" } - 2 { "Standard" } - 3 { "Solaris" } - 4 { "HPUX" } - 5 { "OpenVMS" } - 6 { "Tru64" } - 7 { "Netware" } - 8 { "Sequent" } - 9 { "AIX" } - 10 { "DGUX" } - 11 { "Dynix" } - 12 { "Irix" } - 13 { "Cisco iSCSI Storage Router" } - 14 { "Linux" } - 15 { "Microsoft Windows" } - 16 { "OS400" } - 17 { "TRESPASS" } - 18 { "HI-UX" } - 19 { "VMware ESXi" } - 20 { "Microsoft Windows Server 2008" } - 21 { "Microsoft Windows Server 2003" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageSetting - - - NewDiskPolicy - - switch ($this.psBase.CimInstanceProperties["NewDiskPolicy"].Value) - { - 0 { "Unknown" } - 1 { "OnlineAll" } - 2 { "OfflineShared" } - 3 { "OfflineAll" } - 4 { "OfflineInternal" } - Default { "OfflineShared" } - } - - - - ScrubPolicy - - switch ($this.psBase.CimInstanceProperties["ScrubPolicy"].Value) - { - 0 { "Off" } - 1 { "IntegrityStreams" } - 2 { "All" } - Default { "Integrity Streams" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageJob - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 32772 { $_status += "Failed Media" } - 32773 { $_status += "Split" } - 32774 { $_status += "Stale Metadata" } - 32775 { $_status += "IO Error" } - 32776 { $_status += "Unrecognized Metadata" } - Default { "Unknown" } - } - } - $_status; - - - - JobState - - switch ( $this.psBase.CimInstanceProperties["JobState"].Value ) - { - 2 { "New" } - 3 { "Starting" } - 4 { "Running" } - 5 { "Suspended" } - 6 { "Shutting Down" } - 7 { "Completed" } - 8 { "Terminated" } - 9 { "Killed" } - 10 { "Exception" } - 11 { "Service" } - 12 { "Query Pending" } - Default { "Unknown" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileStorageTier - - - PlacementStatus - - switch ( $this.psBase.CimInstanceProperties["PlacementStatus"].Value ) - { - 0 { "Unknown" } - 1 { "Completely on tier" } - 2 { "Partially on tier" } - 3 { "Not on tier" } - Default { "Unknown" } - } - - - - State - - switch ( $this.psBase.CimInstanceProperties["State"].Value ) - { - 0 { "Unknown" } - 1 { "OK" } - 2 { "Insufficent Capacity" } - 3 { "In Process" } - 4 { "Pending" } - Default { "Unknown" } - } - - - - DesiredStorageTierClass - - switch ( $this.psBase.CimInstanceProperties["DesiredStorageTierClass"].Value ) - { - 1 { "Capacity" } - 2 { "Performance" } - Default { "Unknown" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageTier - - - Usage - - switch ( $this.psBase.CimInstanceProperties["Usage"].Value ) - { - 0 { "Unknown" } - 1 { "Data" } - 2 { "Read Cache" } - 3 { "Write Cache" } - 4 { "Dirty Region Tracking" } - 5 { "Valid Data Tracking" } - Default { "Unknown" } - } - - - - ProvisioningType - - switch ( $this.psBase.CimInstanceProperties["ProvisioningType"].Value ) - { - 0 { "Unknown" } - 1 { "Thin" } - 2 { "Fixed" } - Default { "Unknown" } - } - - - - AllocationUnitSize - - if ( $this.psBase.CimInstanceProperties["AllocationUnitSize"].Value -eq [System.UInt64]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["AllocationUnitSize"].Value - } - - - - MediaType - - switch ( $this.psBase.CimInstanceProperties["MediaType"].Value ) - { - 0 { "Unspecified" } - 3 { "HDD" } - 4 { "SSD" } - 5 { "SCM" } - Default { "Unspecified" } - } - - - - TierClass - - switch ( $this.psBase.CimInstanceProperties["TierClass"].Value ) - { - 0 { "Unknown" } - 1 { "Capacity" } - 2 { "Performance" } - Default { "Unknown" } - } - - - - FaultDomainAwareness - - switch ($this.psBase.CimInstanceProperties["FaultDomainAwareness"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - - - - ColumnIsolation - - switch ($this.psBase.CimInstanceProperties["ColumnIsolation"].Value) - { - 1 { "PhysicalDisk" } - 2 { "StorageEnclosure" } - 3 { "StorageScaleUnit" } - 4 { "StorageChassis" } - 5 { "StorageRack" } - Default { "Unknown" } - } - - - - NumberOfColumns - - if ( $this.psBase.CimInstanceProperties["NumberOfColumns"].Value -eq [System.UInt16]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["NumberOfColumns"].Value - } - - - - NumberOfGroups - - if ( $this.psBase.CimInstanceProperties["NumberOfGroups"].Value -eq [System.UInt16]::MaxValue ) - { - "Auto" - } - else - { - $this.psBase.CimInstanceProperties["NumberOfGroups"].Value - } - - - - ParityLayout - - if ( $this.psBase.CimInstanceProperties["ParityLayout"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ($this.psBase.CimInstanceProperties["ParityLayout"].Value) - { - 1 { "Non-rotated Parity" } - 2 { "Rotated Parity" } - Default { "Unknown" } - } - } - else - { - $null - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_PhysicalExtent - - - Flags - - $_flags = $this.psBase.CimInstanceProperties["Flags"].Value - $_flagsToHex = "{0:x16}" -f $_flags - '0x' + $_flagsToHex; - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 13 { $_status += "Lost Communication" } - 53254 { $_status += "Stale Metadata" } - 53278 { $_status += "Active" } - 53279 { $_status += "Need Reallocation" } - 53280 { $_status += "Need Regeneration" } - 53281 { $_status += "Regenerating" } - 53282 { $_status += "Not Allocated" } - 53283 { $_status += "Pending Deletion" } - Default { "Unknown" } - } - } - $_status; - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToDisk - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53264 { $_status += "Online" } - 53265 { $_status += "Not Ready" } - 53266 { $_status += "No Media" } - 53267 { $_status += "Offline" } - 53268 { $_status += "Failed" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - OfflineReason - - switch ($this.psBase.CimInstanceProperties["OfflineReason"].Value) - { - 1 { "Policy" } - 2 { "Redundant Path" } - 3 { "Snapshot" } - 4 { "Collision" } - 5 { "Resource Exhaustion" } - 6 { "Critical Write Failures" } - 7 { "Data Integrity Scan Required" } - Default { $null } - } - - - - StorageNodeObjectId - - $this.psBase.CimInstanceProperties["StorageNode"].Value.ObjectId - - - - DiskObjectId - - $this.psBase.CimInstanceProperties["Disk"].Value.ObjectId - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileServer - - - HealthStatus - - switch ( $this.psBase.CimInstanceProperties["HealthStatus"].Value ) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53248 { $_status += "Read-Only" } - 53248 { $_status += "Incomplete" } - Default { "Unknown" } - } - } - $_status; - - - - FileSharingProtocols - - $_protos = @(); - foreach ( $p in $this.psBase.CimInstanceProperties["FileSharingProtocols"].Value ) - { - switch ( $p ) - { - 2 { $_protos += "NFS" } - 3 { $_protos += "SMB" } - Default { "Unknown" } - } - } - $_protos; - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_FileShare - - - HealthStatus - - switch ( $this.psBase.CimInstanceProperties["HealthStatus"].Value ) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "InService" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53264 { $_status += "Online" } - 53265 { $_status += "Not Ready" } - 53266 { $_status += "No Media" } - 53267 { $_status += "Offline" } - 53268 { $_status += "Failed" } - Default { $_status += "Unknown" } - } - } - $_status; - - - - ShareState - - switch ( $this.psBase.CimInstanceProperties["ShareState"].Value ) - { - 0 { "Pending" } - 1 { "Online" } - 2 { "Offline" } - Default { "Unknown" } - } - - - - FileSharingProtocol - - switch ( $this.psBase.CimInstanceProperties["FileSharingProtocol"].Value ) - { - 2 { "NFS" } - 3 { "SMB" } - Default { "Unknown" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToPhysicalDisk - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - OperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["OperationalStatus"].Value ) - { - switch ( $status ) - { - 1 { $_status += "Other" } - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 4 { $_status += "Stressed" } - 5 { $_status += "Predictive Failure" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 8 { $_status += "Starting" } - 9 { $_status += "Stopping" } - 10 { $_status += "Stopped" } - 11 { $_status += "In Service" } - 12 { $_status += "No Contact" } - 13 { $_status += "Lost Communication" } - 14 { $_status += "Aborted" } - 15 { $_status += "Dormant" } - 16 { $_status += "Supporting Entity in Error" } - 17 { $_status += "Completed" } - 18 { $_status += "Power Mode" } - 19 { $_status += "Relocating" } - 53252 { $_status += "Failed Media" } - 53253 { $_status += "Split" } - 53254 { $_status += "Stale Metadata" } - 53255 { $_status += "IO Error" } - 53256 { $_status += "Unrecognized Metadata" } - 53269 { $_status += "Removing from pool" } - 53270 { $_status += "In Maintenance Mode" } - 53271 { $_status += "Updating firmware" } - 53272 { $_status += "Device Hardware Error" } - 53273 { $_status += "Not Usable" } - 53274 { $_status += "Transient Error" } - 53276 { $_status += "Starting Maintenance Mode"} - 53277 { $_status += "Stopping Maintenance Mode"} - 53285 { $_status += "Threshold Exceeded"} - 53286 { $_status += "Abnormal Latency"} - Default { "Unknown" } - } - } - $_status; - - - - LoadBalancePolicy - - if ( $this.psBase.CimInstanceProperties["LoadBalancePolicy"].Flags.HasFlag([Microsoft.Management.Infrastructure.CimFlags]::NullValue) -eq $false ) - { - switch ( $this.psBase.CimInstanceProperties["LoadBalancePolicy"].Value ) - { - 0 { "Unknown" } - 1 { "Fail Over" } - 2 { "Round Robin" } - 3 { "Round Robin with Subset" } - 4 { "Least Queue Depth" } - 5 { "Weighted Paths" } - 6 { "Least Blocks" } - 7 { "Vendor Specific" } - } - } - - - - PathState - - $_state = @(); - foreach ( $state in $this.psBase.CimInstanceProperties["PathState"].Value ) - { - switch ( $state ) - { - 0 { $_state += "Unavailable" } - 1 { $_state += "Active/Unoptimized" } - 2 { $_state += "Standby" } - 3 { $_state += "Active/Optimized" } - 4 { $_state += "Failed" } - } - } - $_state; - - - - StorageNodeObjectId - - $this.psBase.CimInstanceProperties["StorageNode"].Value.ObjectId - - - - PhysicalDiskObjectId - - $this.psBase.CimInstanceProperties["PhysicalDisk"].Value.ObjectId - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToStorageEnclosure - - - HealthStatus - - switch ($this.psBase.CimInstanceProperties["HealthStatus"].Value) - { - 0 { "Healthy" } - 1 { "Warning" } - 2 { "Unhealthy" } - 5 { "Unknown" } - Default { "Unknown" } - } - - - - SlotOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["SlotOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - PowerSupplyOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["PowerSupplyOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - FanOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["FanOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - TemperatureSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["TemperatureSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - VoltageSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["VoltageSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - CurrentSensorOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["CurrentSensorOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - IOControllerOperationalStatus - - $_status = @(); - foreach ( $status in $this.psBase.CimInstanceProperties["IOControllerOperationalStatus"].Value ) - { - switch ( $status ) - { - 2 { $_status += "OK" } - 3 { $_status += "Degraded" } - 6 { $_status += "Error" } - 7 { $_status += "Non-Recoverable Error" } - 53257 { $_status += "Not Installed" } - 53258 { $_status += "Off" } - 53259 { $_status += "No Access Allowed" } - 53260 { $_status += "Not Reported" } - Default { "Unknown" } - } - } - $_status; - - - - StorageNodeObjectId - - $this.psBase.CimInstanceProperties["StorageNode"].Value.ObjectId - - - - StorageEnclosureObjectId - - $this.psBase.CimInstanceProperties["StorageEnclosure"].Value.ObjectId - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageDiagnoseResult - - - PerceivedSeverity - - switch ( $this.psBase.CimInstanceProperties["PerceivedSeverity"].Value ) - { - 0 { "Unknown" } - 2 { "Information" } - 3 { "Degraded/Warning" } - 4 { "Minor" } - 5 { "Major" } - 6 { "Critical" } - 7 { "Fatal/NonRecoverable" } - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthAction - - - State - - switch ( $this.psBase.CimInstanceProperties["State"].Value ) - { - 0 { "None" } - 1 { "Scheduled" } - 2 { "Running" } - 3 { "Paused" } - 1024 { "Succeeded" } - 1025 { "Failed" } - 1026 { "Canceled" } - } - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageCmdlets.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageCmdlets.cdxml deleted file mode 100644 index 219b64b..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageCmdlets.cdxml +++ /dev/null @@ -1,3187 +0,0 @@ - - - 1.0.0.0 - NoExport - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageEnclosure.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageEnclosure.cdxml deleted file mode 100644 index 4c51f4e..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageEnclosure.cdxml +++ /dev/null @@ -1,339 +0,0 @@ - - - 1.0.0.0 - StorageEnclosure - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageHealth.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageHealth.cdxml deleted file mode 100644 index 8341214..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageHealth.cdxml +++ /dev/null @@ -1,151 +0,0 @@ - - - 1.0.0.0 - StorageHealth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageJob.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageJob.cdxml deleted file mode 100644 index fa537a2..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageJob.cdxml +++ /dev/null @@ -1,172 +0,0 @@ - - - 1.0.0.0 - StorageJob - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageNode.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageNode.cdxml deleted file mode 100644 index b009ffe..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageNode.cdxml +++ /dev/null @@ -1,113 +0,0 @@ - - - 1.0.0.0 - StorageNode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StoragePool.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StoragePool.cdxml deleted file mode 100644 index 66f2753..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StoragePool.cdxml +++ /dev/null @@ -1,786 +0,0 @@ - - - 1.0.0.0 - StoragePool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageProvider.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageProvider.cdxml deleted file mode 100644 index c7041e1..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageProvider.cdxml +++ /dev/null @@ -1,227 +0,0 @@ - - - 1.0.0.0 - StorageProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageReliabilityCounter.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageReliabilityCounter.cdxml deleted file mode 100644 index 30b834d..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageReliabilityCounter.cdxml +++ /dev/null @@ -1,49 +0,0 @@ - - - 1.0.0.0 - StorageReliabilityCounter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageScripts.psm1 b/newton-cn/bin/v1.0/Modules/Storage/StorageScripts.psm1 deleted file mode 100644 index ad25618..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageScripts.psm1 +++ /dev/null @@ -1,7951 +0,0 @@ -############################ -# -# Copyright (c) Microsoft Corporation -# -# Abstract: -# SMAPI script cmdlets -# -############################ - -using namespace System.Management.Automation.Runspaces - -import-module Storage\StorageHealth.cdxml -import-module Storage\StorageSubSystem.cdxml - -$StorageNamespace = 'root\microsoft\windows\storage' -$WmiNamespace = 'root\wmi' -$ClusterNamespace = 'root\mscluster' - -$Global:StorageHistoryCharts = [Hashtable]::Synchronized(@{}) - -function CreateErrorRecord -{ - Param - ( - [String] - $ErrorId, - - [String] - $ErrorMessage, - - [System.Management.Automation.ErrorCategory] - $ErrorCategory, - - [Exception] - $Exception, - - [Object] - $TargetObject - ) - - if($Exception -eq $null) - { - $Exception = New-Object System.Management.Automation.RuntimeException $ErrorMessage - } - - $errorRecord = New-Object System.Management.Automation.ErrorRecord @($Exception, $ErrorId, $ErrorCategory, $TargetObject) - return $errorRecord -} - -class StorageHistory -{ - [UInt16]$Version - [String]$FriendlyName - [String]$SerialNumber - [String]$AdapterSerialNumber - [String]$FirmwareRevision - [String]$DeviceGuid - [String]$DeviceNumber - [String]$BusType - [String]$MediaType - [DateTime]$EventTime - [UInt32]$MaxQueueCount - [UInt32]$MaxOutstandingCount - [UInt64]$TotalIoCount - [UInt64]$SuccessIoCount - [UInt64]$FailedIoCount - [UInt64]$TotalReadBytes - [UInt64]$TotalWriteBytes - [UInt64]$TotalIoLatency - [UInt64]$AvgIoLatency - [UInt64]$MaxIoLatency - [UInt64]$MaxFlushLatency - [UInt64]$MaxUnmapLatency - [UInt64]$TotalQueueIoCount - [UInt64]$TotalQueueIoWaitTime - [UInt64]$AvgQueueIoWaitTime - [UInt64]$MaxQueueIoWaitTime - [UInt32]$IoTimeout - [UInt64]$QueueIoWaitExceededTimeoutCount - [UInt64]$QueueIoBusyCount - [UInt64]$QueueIoPausedCount - [UInt64]$QueueIoUntaggedCommandOutstandingCount - [UInt64]$QueueIoPausedForUntaggedCount - [UInt64]$TotalErrors - [UInt64]$TotalReadWriteErrors - [UInt64]$TotalImpendingDeviceFailureErrors - [UInt64]$TotalDeviceFailureErrors - [UInt16]$BucketCount - [UInt64[]]$BucketIoLatency - [UInt64[]]$BucketSuccessIoCount - [UInt64[]]$BucketFailedIoCount - [UInt64[]]$BucketTotalIoCount - [UInt64[]]$BucketTotalIoTime - [Single[]]$BucketIoPercent - [UInt16]$HighestLatencyBucket - [System.Collections.ArrayList]$UnresponsiveTime - [System.Collections.ArrayList]$ResponsiveTime -} - -class StorageHistoryAggregate -{ - [UInt16]$Version - [String]$FriendlyName - [String]$SerialNumber - [String]$AdapterSerialNumber - [String]$FirmwareRevision - [String]$DeviceGuid - [String]$DeviceNumber - [String]$BusType - [String]$MediaType - [DateTime]$StartTime - [DateTime]$EndTime - [UInt32]$EventCount - [UInt32]$MaxQueueCount - [UInt32]$MaxOutstandingCount - [Double]$TotalIoCount - [Double]$SuccessIoCount - [Double]$FailedIoCount - [Double]$TotalReadBytes - [Double]$TotalWriteBytes - [Double]$TotalIoLatency - [UInt64]$AvgIoLatency - [UInt64]$MaxIoLatency - [UInt64]$MaxFlushLatency - [UInt64]$MaxUnmapLatency - [Double]$TotalQueueIoCount - [Double]$TotalQueueIoWaitTime - [UInt64]$AvgQueueIoWaitTime - [UInt64]$MaxQueueIoWaitTime - [UInt32]$IoTimeout - [Double]$QueueIoWaitExceededTimeoutCount - [Double]$QueueIoBusyCount - [Double]$QueueIoPausedCount - [Double]$QueueIoUntaggedCommandOutstandingCount - [Double]$QueueIoPausedForUntaggedCount - [Double]$TotalErrors - [Double]$TotalReadWriteErrors - [Double]$TotalImpendingDeviceFailureErrors - [Double]$TotalDeviceFailureErrors - [UInt16]$BucketCount - [UInt64[]]$BucketIoLatency - [Double[]]$BucketSuccessIoCount - [Double[]]$BucketFailedIoCount - [Double[]]$BucketTotalIoCount - [Double[]]$BucketTotalIoTime - [UInt32[]]$BucketIoPercent - [UInt32[]]$BucketHighestLatencyCount -} - -class StorageError -{ - [UInt16]$Version - [String]$FriendlyName - [String]$SerialNumber - [String]$AdapterSerialNumber - [String]$FirmwareRevision - [String]$DeviceGuid - [String]$DeviceNumber - [String]$BusType - [String]$MediaType - [DateTime]$EventTime - [UInt32]$ServiceDuration - [UInt32]$QueueWaitDuration - [Byte]$Command - [Byte]$SrbStatus - [Byte]$ScsiStatus - [Byte]$SenseKey - [Byte]$SenseCode - [Byte]$SenseCodeQualifier - [UInt32]$IoSize - [UInt32]$QueueDepth - [UInt64]$LBA -} - - -$PopulateStorageError = { - - Param - ( - [Ref] - $Object, - - [System.Diagnostics.Eventing.Reader.EventRecord] - $EventRecord, - - [System.String] - $FriendlyName, - - [System.String] - $SerialNumber, - - [System.String] - $AdapterSerialNumber, - - [System.String] - $FirmwareRevision, - - [System.String] - $DeviceGuid, - - [System.String] - $Number, - - [System.String] - $BusType, - - [System.String] - $MediaType - ) - - $eventXml = [XML]$EventRecord.ToXml() - $tempObject = [PsCustomObject]@{} - - for ($index = 0; $index -lt $eventXml.Event.EventData.Data.Count; $index++) - { - $tempObject | Add-Member -MemberType NoteProperty ` - -Name $eventXml.Event.EventData.Data[$index].Name ` - -Value $eventXml.Event.EventData.Data[$index].'#Text' - } - - $Object.Value.PSObject.TypeNames.Insert( 0, "Microsoft.Windows.StorageManagement.StorageError" ) - $Object.Value.PSObject.TypeNames.Insert( 1, "Microsoft.Windows.StorageManagement.StorageError_v1" ) - - $Object.Value.Version = [UInt16]$tempObject.Version - - if ([String]::IsNullOrEmpty($FriendlyName) -eq $false) - { - $Object.Value.FriendlyName = $FriendlyName - } - else - { - $Object.Value.FriendlyName = $tempObject.ProductId - } - - if ([String]::IsNullOrEmpty($SerialNumber) -eq $false) - { - $Object.Value.SerialNumber = $SerialNumber - } - else - { - $Object.Value.SerialNumber = $tempObject.SerialNumber - } - - if ([String]::IsNullOrEmpty($AdapterSerialNumber) -eq $false) - { - $Object.Value.AdapterSerialNumber = $AdapterSerialNumber - } - else - { - $Object.Value.AdapterSerialNumber = $tempObject.AdapterSerialNumber - } - - if ([String]::IsNullOrEmpty($FirmwareRevision) -eq $false) - { - $Object.Value.FirmwareRevision = $FirmwareRevision - } - - $Object.Value.DeviceGuid = $DeviceGuid - $Object.Value.DeviceNumber = $Number - - if ([String]::IsNullOrEmpty($BusType) -eq $false) - { - $Object.Value.BusType = $BusType - } - else - { - switch ($tempObject.BusType) - { - "8" { $Object.Value.BusType = "RAID" } - "10" { $Object.Value.BusType = "SAS" } - "11" { $Object.Value.BusType = "SATA" } - "14" { $Object.Value.BusType = "Virtual" } - "17" { $Object.Value.BusType = "NVMe" } - "19" { $Object.Value.BusType = "UFS" } - default { $Object.Value.BusType = "Unknown" } - } - } - - $Object.Value.MediaType = $MediaType - $Object.Value.EventTime = $event.TimeCreated - $Object.Value.ServiceDuration = $tempObject.RequestDuration_ms - $Object.Value.QueueWaitDuration = $tempObject.WaitDuration_ms - $Object.Value.Command = $tempObject.Command - $Object.Value.SrbStatus = $tempObject.SrbStatus - $Object.Value.ScsiStatus = $tempObject.ScsiStatus - $Object.Value.SenseKey = $tempObject.SenseKey - $Object.Value.SenseCode = $tempObject.AddSense - $Object.Value.SenseCodeQualifier = $tempObject.AddSenseQ - $Object.Value.IoSize = $tempObject.IoSize - $Object.Value.QueueDepth = $tempObject.QueueDepth - $Object.Value.LBA = $tempObject.LBA -} - - -$PopulateStorageHistory = { - - Param - ( - [Ref] - $Object, - - [System.Diagnostics.Eventing.Reader.EventRecord] - $EventRecord, - - [System.String] - $FriendlyName, - - [System.String] - $SerialNumber, - - [System.String] - $AdapterSerialNumber, - - [System.String] - $FirmwareRevision, - - [System.String] - $DeviceGuid, - - [System.String] - $Number, - - [System.String] - $BusType, - - [System.String] - $MediaType - ) - - $eventXml = [XML]$EventRecord.ToXml() - $tempObject = [PsCustomObject]@{} - - for ($index = 0; $index -lt $eventXml.Event.EventData.Data.Count; $index++) - { - $tempObject | Add-Member -MemberType NoteProperty ` - -Name $eventXml.Event.EventData.Data[$index].Name ` - -Value $eventXml.Event.EventData.Data[$index].'#Text' - } - - $Object.Value.PSObject.TypeNames.Insert( 0, "Microsoft.Windows.StorageManagement.StorageHistory" ) - - $Object.Value.Version = [UInt16]$tempObject.Version - - if ([String]::IsNullOrEmpty($FriendlyName) -eq $false) - { - $Object.Value.FriendlyName = $FriendlyName - } - else - { - $Object.Value.FriendlyName = $tempObject.ProductId - } - - if ([String]::IsNullOrEmpty($SerialNumber) -eq $false) - { - $Object.Value.SerialNumber = $SerialNumber - } - else - { - $Object.Value.SerialNumber = $tempObject.SerialNumber - } - - if ([String]::IsNullOrEmpty($AdapterSerialNumber) -eq $false) - { - $Object.Value.AdapterSerialNumber = $AdapterSerialNumber - } - else - { - $Object.Value.AdapterSerialNumber = $tempObject.AdapterSerialNumber - } - - if ([String]::IsNullOrEmpty($FirmwareRevision) -eq $false) - { - $Object.Value.FirmwareRevision = $FirmwareRevision - } - else - { - $Object.Value.FirmwareRevision = $tempObject.FirmwareRevision - } - - $Object.Value.DeviceGuid = $DeviceGuid - $Object.Value.DeviceNumber = $Number - - if ([String]::IsNullOrEmpty($BusType) -eq $false) - { - $Object.Value.BusType = $BusType - } - else - { - switch ($tempObject.BusType) - { - "8" { $Object.Value.BusType = "RAID" } - "10" { $Object.Value.BusType = "SAS" } - "11" { $Object.Value.BusType = "SATA" } - "14" { $Object.Value.BusType = "Virtual" } - "17" { $Object.Value.BusType = "NVMe" } - "19" { $Object.Value.BusType = "UFS" } - default { $Object.Value.BusType = "Unknown" } - } - } - - $Object.Value.MediaType = $MediaType - $Object.Value.EventTime = $event.TimeCreated - $Object.Value.MaxQueueCount = [UInt32]$tempObject.MaxDeviceQueueCount - $Object.Value.MaxOutstandingCount = [UInt32]$tempObject.MaxOutstandingCount - - if ($Object.Value.Version -eq 5) - { - $Object.Value.PSObject.TypeNames.Insert( 1, "Microsoft.Windows.StorageManagement.StorageHistory_v5" ) - - $Object.Value.BucketCount = 5 - $Object.Value.BucketIoLatency = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketSuccessIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketFailedIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketTotalIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketTotalIoTime = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketIoPercent = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - - $Object.Value.BucketIoLatency[0] = 16 * 10000 # 16 ms in 100ns - $Object.Value.BucketIoLatency[1] = 64 * 10000 # 64 ms in 100ns - $Object.Value.BucketIoLatency[2] = 2048 * 10000 # 2048 ms in 100ns - $Object.Value.BucketIoLatency[3] = 5120 * 10000 # 5120 ms in 100ns - $Object.Value.BucketIoLatency[4] = 10000 * 10000 # 5120+ ms approx to 10000 ms in 100ns - - for ($index = 0; $index -lt $Object.Value.BucketCount; $index++) - { - $field = "BucketIoCount" + [System.String]($index + 1) - $Object.Value.BucketTotalIoCount[$index] = $($tempObject.$field) - $Object.Value.BucketTotalIoTime[$index] = $Object.Value.BucketTotalIoCount[$index] * $Object.Value.BucketIoLatency[$index] - - $Object.Value.TotalIoCount += $Object.Value.BucketTotalIoCount[$index] - $Object.Value.TotalIoLatency += $Object.Value.BucketTotalIoTime[$index] - - if ($Object.Value.BucketTotalIoCount[$index] -gt 0) - { - $Object.Value.MaxIoLatency = $Object.Value.BucketIoLatency[$index] - $Object.Value.HighestLatencyBucket = $index - } - } - - if ($Object.Value.TotalIoCount -gt 0) - { - for ($index = 0; $index -lt $Object.Value.BucketCount; $index++) - { - $Object.Value.BucketIoPercent[$index] = ($Object.Value.BucketTotalIoCount[$index] * 100) / $Object.Value.TotalIoCount - } - } - } - elseif (($Object.Value.Version -ge 9) -or ($Object.Value.Version -le 11)) - { - $Object.Value.PSObject.TypeNames.Insert( 1, "Microsoft.Windows.StorageManagement.StorageHistory_v11" ) - - $Object.Value.TotalIoCount = $tempObject.TotalIoCount - $Object.Value.TotalReadBytes = $tempObject.TotalReadBytes - $Object.Value.TotalWriteBytes = $tempObject.TotalWriteBytes - $Object.Value.MaxIoLatency = $tempObject.MaxReadWriteLatency_100ns - $Object.Value.MaxFlushLatency = $tempObject.MaxFlushLatency_100ns - $Object.Value.MaxUnmapLatency = $tempObject.MaxUnmapLatency_100ns - - if ($Object.Value.Version -eq 11) - { - $Object.Value.TotalQueueIoCount = $tempObject.TotalDeviceQueueIoCount - $Object.Value.TotalQueueIoWaitTime = $tempObject.TotalDeviceQueueIoWaitDuration_100ns - $Object.Value.MaxQueueIoWaitTime = $tempObject.MaxDeviceQueueIoWaitDuration_100ns - $Object.Value.IoTimeout = $tempObject.IoTimeout_s - $Object.Value.QueueIoWaitExceededTimeoutCount = $tempObject.DeviceQueueIoWaitExceededTimeoutCount - $Object.Value.QueueIoBusyCount = $tempObject.DeviceQueueIoBusyCount - $Object.Value.QueueIoPausedCount = $tempObject.DeviceQueueIoPausedCount - $Object.Value.QueueIoUntaggedCommandOutstandingCount = $tempObject.DeviceQueueIoUntaggedCommandOutstandingCount - $Object.Value.QueueIoPausedForUntaggedCount = $tempObject.DeviceQueueIoPausedForUntaggedCount - } - - $Object.Value.BucketCount = 12 - $Object.Value.BucketIoLatency = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketSuccessIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketFailedIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketTotalIoCount = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketTotalIoTime = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - $Object.Value.BucketIoPercent = New-Object -TypeName System.UInt64[] $Object.Value.BucketCount - - $Object.Value.BucketIoLatency[0] = 256 * 10 # 256 us in 100ns - $Object.Value.BucketIoLatency[1] = 1 * 10000 # 1 ms in 100ns - $Object.Value.BucketIoLatency[2] = 4 * 10000 # 4 ms in 100ns - $Object.Value.BucketIoLatency[3] = 16 * 10000 # 16 ms in 100ns - $Object.Value.BucketIoLatency[4] = 64 * 10000 # 64 ms in 100ns - $Object.Value.BucketIoLatency[5] = 128 * 10000 # 128 ms in 100ns - $Object.Value.BucketIoLatency[6] = 256 * 10000 # 256 ms in 100ns - $Object.Value.BucketIoLatency[7] = 2000 * 10000 # 2000 ms in 100ns - $Object.Value.BucketIoLatency[8] = 6000 * 10000 # 6000 ms in 100ns - $Object.Value.BucketIoLatency[9] = 10000 * 10000 # 10000 ms in 100ns - $Object.Value.BucketIoLatency[10] = 20000 * 10000 # 20000 ms in 100ns - $Object.Value.BucketIoLatency[11] = 30000 * 10000 # 20000+ ms approx to 30000 ms in 100ns - - for ($index = 0; $index -lt $Object.Value.BucketCount; $index++) - { - $field = "BucketIoSuccess" + [System.String]($index + 1) - $Object.Value.BucketSuccessIoCount[$index] = $($tempObject.$field) - - $field = "BucketIoFailed" + [System.String]($index + 1) - $Object.Value.BucketFailedIoCount[$index] = $($tempObject.$field) - - $field = "BucketIoLatency" + [System.String]($index + 1) + "_100ns" - $Object.Value.BucketTotalIoTime[$index] = $($tempObject.$field) - - $Object.Value.BucketTotalIoCount[$index] = $Object.Value.BucketSuccessIoCount[$index] + $Object.Value.BucketFailedIoCount[$index] - - $Object.Value.SuccessIoCount += $Object.Value.BucketSuccessIoCount[$index] - $Object.Value.FailedIoCount += $Object.Value.BucketFailedIoCount[$index] - $Object.Value.TotalIoLatency += $Object.Value.BucketTotalIoTime[$index] - - if ($Object.Value.TotalIoCount -gt 0) - { - $Object.Value.BucketIoPercent[$index] = ($Object.Value.BucketTotalIoCount[$index] * 100) / $Object.Value.TotalIoCount - } - - if ($Object.Value.BucketTotalIoCount[$index] -gt 0) - { - $Object.Value.HighestLatencyBucket = $index - } - } - } - - if ($Object.Value.TotalIoCount -gt 0) - { - $Object.Value.AvgIoLatency = $Object.Value.TotalIoLatency / $Object.Value.TotalIoCount - } - - if (($Object.Value.Version -eq 11) -and ($Object.Value.TotalQueueIoCount -gt 0)) - { - $Object.Value.AvgQueueIoWaitTime = $Object.Value.TotalQueueIoWaitTime / $Object.Value.TotalQueueIoCount - } -} - - -$AugmentStorageHistory = { - - Param - ( - [Ref] - $Object, - - [System.Diagnostics.Eventing.Reader.EventRecord] - $EventRecord - ) - - $eventXml = [XML]$EventRecord.ToXml() - $tempObject = [PsCustomObject]@{} - - for ($index = 0; $index -lt $eventXml.Event.EventData.Data.Count; $index++) - { - $tempObject | Add-Member -MemberType NoteProperty ` - -Name $eventXml.Event.EventData.Data[$index].Name ` - -Value $eventXml.Event.EventData.Data[$index].'#Text' - } - - if ($EventRecord.Id -eq 502) - { - if ($Object.Value.UnresponsiveTime -eq $null) - { - $Object.Value.UnresponsiveTime = New-Object System.Collections.ArrayList - } - - $Object.Value.UnresponsiveTime.Add($EventRecord.TimeCreated) - } - elseif ($EventRecord.Id -eq 503) - { - if ($Object.Value.ResponsiveTime -eq $null) - { - $Object.Value.ResponsiveTime = New-Object System.Collections.ArrayList - } - - $Object.Value.ResponsiveTime.Add($EventRecord.TimeCreated) - } - elseif ($EventRecord.Id -eq 504) - { - $Object.Value.TotalErrors = $tempObject.TotalErrors - $Object.Value.TotalReadWriteErrors = $tempObject.TotalReadWriteErrors - $Object.Value.TotalImpendingDeviceFailureErrors = $tempObject.TotalImpendingDeviceFailureErrors - $Object.Value.TotalDeviceFailureErrors = $tempObject.TotalDeviceFailureErrors - } -} - - -$PopulateStorageHistoryAggregate = { - - Param - ( - [Ref] - $AggregateObject, - - [Ref] - $Object - ) - - if ($AggregateObject.Value.Version -eq 0) - { - $AggregateObject.Value.PSObject.TypeNames.Insert( 0, "Microsoft.Windows.StorageManagement.StorageHistoryAggregate" ) - - if ($Object.Value.Version -eq 5) - { - $AggregateObject.Value.PSObject.TypeNames.Insert( 1, "Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v5" ) - } - elseif (($Object.Value.Version -ge 9) -or ($Object.Value.Version -le 11)) - { - $AggregateObject.Value.PSObject.TypeNames.Insert( 1, "Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v11" ) - } - - $AggregateObject.Value.Version = $Object.Value.Version - $AggregateObject.Value.FriendlyName = $Object.Value.FriendlyName - $AggregateObject.Value.SerialNumber = $Object.Value.SerialNumber - $AggregateObject.Value.AdapterSerialNumber = $Object.Value.AdapterSerialNumber - $AggregateObject.Value.FirmwareRevision = $Object.Value.FirmwareRevision - $AggregateObject.Value.DeviceGuid = $Object.Value.DeviceGuid - $AggregateObject.Value.DeviceNumber = $Object.Value.DeviceNumber - $AggregateObject.Value.BusType = $Object.Value.BusType - $AggregateObject.Value.MediaType = $Object.Value.MediaType - $AggregateObject.Value.StartTime = $Object.Value.EventTime - $AggregateObject.Value.EndTime = $Object.Value.EventTime - $AggregateObject.Value.EventCount = 1 - $AggregateObject.Value.MaxQueueCount = $Object.Value.MaxQueueCount - $AggregateObject.Value.MaxOutstandingCount = $Object.Value.MaxOutstandingCount - $AggregateObject.Value.TotalIoCount = $Object.Value.TotalIoCount - $AggregateObject.Value.SuccessIoCount = $Object.Value.SuccessIoCount - $AggregateObject.Value.FailedIoCount = $Object.Value.FailedIoCount - $AggregateObject.Value.TotalReadBytes = $Object.Value.TotalReadBytes - $AggregateObject.Value.TotalWriteBytes = $Object.Value.TotalWriteBytes - $AggregateObject.Value.TotalIoLatency = $Object.Value.TotalIoLatency - $AggregateObject.Value.MaxIoLatency = $Object.Value.MaxIoLatency - $AggregateObject.Value.MaxFlushLatency = $Object.Value.MaxFlushLatency - $AggregateObject.Value.MaxUnmapLatency = $Object.Value.MaxUnmapLatency - $AggregateObject.Value.TotalQueueIoCount = $Object.Value.TotalQueueIoCount - $AggregateObject.Value.TotalQueueIoWaitTime = $Object.Value.TotalQueueIoWaitTime - $AggregateObject.Value.MaxQueueIoWaitTime = $Object.Value.MaxQueueIoWaitTime - - if ($Object.Value.IoTimeout) - { - $AggregateObject.Value.IoTimeout = $Object.Value.IoTimeout - } - - $AggregateObject.Value.QueueIoWaitExceededTimeoutCount = $Object.Value.QueueIoWaitExceededTimeoutCount - $AggregateObject.Value.QueueIoBusyCount = $Object.Value.QueueIoBusyCount - $AggregateObject.Value.QueueIoPausedCount = $Object.Value.QueueIoPausedCount - $AggregateObject.Value.QueueIoUntaggedCommandOutstandingCount = $Object.Value.QueueIoUntaggedCommandOutstandingCount - $AggregateObject.Value.QueueIoPausedForUntaggedCount = $Object.Value.QueueIoPausedForUntaggedCount - $AggregateObject.Value.TotalErrors = $Object.Value.TotalErrors - $AggregateObject.Value.TotalReadWriteErrors = $Object.Value.TotalReadWriteErrors - $AggregateObject.Value.TotalImpendingDeviceFailureErrors = $Object.Value.TotalImpendingDeviceFailureErrors - $AggregateObject.Value.TotalDeviceFailureErrors = $Object.Value.TotalDeviceFailureErrors - $AggregateObject.Value.BucketCount = $Object.Value.BucketCount - - $AggregateObject.Value.BucketIoLatency = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketSuccessIoCount = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketFailedIoCount = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketTotalIoCount = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketTotalIoTime = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketIoPercent = New-Object -TypeName System.UInt64[] $AggregateObject.Value.BucketCount - $AggregateObject.Value.BucketHighestLatencyCount = New-Object -TypeName System.UInt32[] $AggregateObject.Value.BucketCount - - for ($index = 0; $index -lt $AggregateObject.Value.BucketCount; $index++) - { - $AggregateObject.Value.BucketIoLatency[$index] = $Object.Value.BucketIoLatency[$index] - $AggregateObject.Value.BucketSuccessIoCount[$index] = $Object.Value.BucketSuccessIoCount[$index] - $AggregateObject.Value.BucketFailedIoCount[$index] = $Object.Value.BucketFailedIoCount[$index] - $AggregateObject.Value.BucketTotalIoCount[$index] = $Object.Value.BucketTotalIoCount[$index] - $AggregateObject.Value.BucketTotalIoTime[$index] = $Object.Value.BucketTotalIoTime[$index] - } - - $AggregateObject.Value.BucketHighestLatencyCount[$($Object.Value.HighestLatencyBucket)]++ - - } - else - { - if ($Object.Value.Version -ne $AggregateObject.Value.Version) - { - return - } - - if ($Object.Value.EventTime -lt $AggregateObject.Value.StartTime) - { - $AggregateObject.Value.StartTime = $Object.Value.EventTime - } - - if ($Object.Value.EventTime -gt $AggregateObject.Value.EndTime) - { - $AggregateObject.Value.EndTime = $Object.Value.EventTime - } - - $AggregateObject.Value.EventCount++ - - if ($Object.Value.MaxQueueCount -gt $AggregateObject.Value.MaxQueueCount) - { - $AggregateObject.Value.MaxQueueCount = $Object.Value.MaxQueueCount - } - - if ($Object.Value.MaxOutstandingCount -gt $AggregateObject.Value.MaxOutstandingCount) - { - $AggregateObject.Value.MaxOutstandingCount = $Object.Value.MaxOutstandingCount - } - - $AggregateObject.Value.TotalIoCount += $Object.Value.TotalIoCount - $AggregateObject.Value.SuccessIoCount += $Object.Value.SuccessIoCount - $AggregateObject.Value.FailedIoCount += $Object.Value.FailedIoCount - $AggregateObject.Value.TotalReadBytes += $Object.Value.TotalReadBytes - $AggregateObject.Value.TotalWriteBytes += $Object.Value.TotalWriteBytes - $AggregateObject.Value.TotalIoLatency += $Object.Value.TotalIoLatency - - if ($Object.Value.MaxIoLatency -gt $AggregateObject.Value.MaxIoLatency) - { - $AggregateObject.Value.MaxIoLatency = $Object.Value.MaxIoLatency - } - - if ($Object.Value.MaxFlushLatency -gt $AggregateObject.Value.MaxFlushLatency) - { - $AggregateObject.Value.MaxFlushLatency = $Object.Value.MaxFlushLatency - } - - if ($Object.Value.MaxUnmapLatency -gt $AggregateObject.Value.MaxUnmapLatency) - { - $AggregateObject.Value.MaxUnmapLatency = $Object.Value.MaxUnmapLatency - } - - $AggregateObject.Value.TotalQueueIoCount += $Object.Value.TotalQueueIoCount - $AggregateObject.Value.TotalQueueIoWaitTime += $Object.Value.TotalQueueIoWaitTime - - if ($Object.Value.MaxQueueIoWaitTime -gt $AggregateObject.Value.MaxQueueIoWaitTime) - { - $AggregateObject.Value.MaxQueueIoWaitTime = $Object.Value.MaxQueueIoWaitTime - } - - if ($Object.Value.IoTimeout) - { - $AggregateObject.Value.IoTimeout = $Object.Value.IoTimeout - } - - $AggregateObject.Value.QueueIoWaitExceededTimeoutCount += $Object.Value.QueueIoWaitExceededTimeoutCount - $AggregateObject.Value.QueueIoBusyCount += $Object.Value.QueueIoBusyCount - $AggregateObject.Value.QueueIoPausedCount += $Object.Value.QueueIoPausedCount - $AggregateObject.Value.QueueIoUntaggedCommandOutstandingCount += $Object.Value.QueueIoUntaggedCommandOutstandingCount - $AggregateObject.Value.QueueIoPausedForUntaggedCount += $Object.Value.QueueIoPausedForUntaggedCount - $AggregateObject.Value.TotalErrors += $Object.Value.TotalErrors - $AggregateObject.Value.TotalReadWriteErrors += $Object.Value.TotalReadWriteErrors - $AggregateObject.Value.TotalImpendingDeviceFailureErrors += $Object.Value.TotalImpendingDeviceFailureErrors - $AggregateObject.Value.TotalDeviceFailureErrors += $Object.Value.TotalDeviceFailureErrors - - for ($index = 0; $index -lt $AggregateObject.Value.BucketCount; $index++) - { - $AggregateObject.Value.BucketSuccessIoCount[$index] += $Object.Value.BucketSuccessIoCount[$index] - $AggregateObject.Value.BucketFailedIoCount[$index] += $Object.Value.BucketFailedIoCount[$index] - $AggregateObject.Value.BucketTotalIoCount[$index] += $Object.Value.BucketTotalIoCount[$index] - $AggregateObject.Value.BucketTotalIoTime[$index] += $Object.Value.BucketTotalIoTime[$index] - } - - $AggregateObject.Value.BucketHighestLatencyCount[$($Object.Value.HighestLatencyBucket)]++ - } -} - - -function Get-StorageHistory -{ - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk, - - [System.String] - [Parameter( - ParameterSetName = 'ByDeviceGuid', - ValueFromPipeline = $false, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("DeviceId")] - $DeviceGuid, - - [System.String] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - ValueFromPipeline = $false, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $DeviceNumber, - - #### ------------------------- PhysicalDisk parameters -----------------------#### - - [System.Management.Automation.PSCredential] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - $Credential, - - #### ------------------------- Common method parameters ----------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $LogFile, - - [UInt32] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - $NumberOfHours, - - [Switch] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - $Disaggregate, - - [Switch] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - $Errors - ) - - Begin - { - } - - Process - { - # - # Get the device id based on the parameter set - # - - switch -regex ($psCmdlet.ParameterSetName) - { - { @( ` - "ByPhysicalDisk", ` - "ByDeviceNumber" ` - ) -contains $_ ` - } - { - # - # If device number is specified, - # get the corresponding device - # - - try - { - if ($DeviceNumber) - { - $PhysicalDisk = Get-PhysicalDisk -DeviceNumber $DeviceNumber - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId "ObjectNotFound" ` - -ErrorMessage "A physical disk matching the input criteria was not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # - # If log file is not specified, - # get the node name where the - # device is connected - # - - if (-not $LogFile) - { - $subsystem = $PhysicalDisk | get-storagesubsystem - - if ($subsystem.Model -eq "Clustered Windows Storage" -and - $subsystem.StorageConnectionType -eq "Local Storage") - { - # If the subsystem is clustered local (storage spaces direct) use - # SSU mapping since it works for 'Lost Communication' drives - - $storageScaleUnit = $PhysicalDisk | Get-StorageScaleUnit - - if (-not $storageScaleUnit) - { - $errorObject = CreateErrorRecord -ErrorId "ObjectNotFound" ` - -ErrorMessage "A storage scale unit was not found for the physical disk" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $computerName = $storageScaleUnit.FriendlyName - } - else - { - $storageNode = $PhysicalDisk | Get-StorageNode -PhysicallyConnected - - if (-not $storageNode) - { - $errorObject = CreateErrorRecord -ErrorId "ObjectNotFound" ` - -ErrorMessage "A storage node was not found for the physical disk" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $computerName = $storageNode.Name - } - } - - # Extract the device guid from the object id - # It is of the format ' <>:PD:" ' - $guid = $PhysicalDisk.ObjectId.Split(":")[2].TrimEnd('"') - - $friendlyName = $PhysicalDisk.FriendlyName - $serialNumber = $PhysicalDisk.SerialNumber - $adapterSerialNumber = $PhysicalDisk.AdapterSerialNumber - $firmwareRevision = $PhysicalDisk.FirmwareVersion - - if ($PhysicalDisk.DeviceId -ge 0) - { - $deviceNumber = $PhysicalDisk.DeviceId - } - - $busType = $PhysicalDisk.BusType - $mediaType = $PhysicalDisk.MediaType - } - - { @( ` - "ByDeviceGuid" ` - ) -contains $_ ` - } - { - try - { - [System.Guid]::Parse($DeviceGuid) | Out-Null - $guid = $DeviceGuid - } - catch - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "DeviceGuid (or DeviceId) should be a GUID of the format 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' or '{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - } - } - - # - # Build the query to look for the specific events in storport log - # - - if ($PSBoundParameters.ContainsKey("Errors")) - { - $eventFilter = "EventID=549" - } - else - { - $eventFilter = "EventID=502 or ` - EventID=503 or ` - EventID=504 or ` - EventID=505" - } - - if ($NumberOfHours) - { - $query = "*[System[($eventFilter) and TimeCreated[timediff(@SystemTime) <= $($NumberOfHours*3600*1000)]]] and *[EventData[Data[@Name='ClassDeviceGuid'] and (Data='$guid')]]" - } - else - { - $query = "*[System[($eventFilter)]] and *[EventData[Data[@Name='ClassDeviceGuid'] and (Data='$guid')]]" - } - - # - # Retrive the events depending on the parameters - # - - Write-Progress -Activity "Get-StorageHistory" -PercentComplete 0 -CurrentOperation "Gathering events" -Status "0/2" - - try - { - if ($computerName) - { - if ($Credential) - { - $events = Get-WinEvent -LogName Microsoft-Windows-Storage-Storport/Operational ` - -FilterXPath $query ` - -ComputerName $computerName ` - -Credential $Credential ` - -ErrorAction Stop ` - -Oldest - } - else - { - $events = Get-WinEvent -LogName Microsoft-Windows-Storage-Storport/Operational ` - -FilterXPath $query ` - -ComputerName $computerName ` - -ErrorAction Stop ` - -Oldest - } - } - else - { - if ($LogFile) - { - $events = Get-WinEvent -Path $LogFile ` - -FilterXPath $query ` - -ErrorAction Stop ` - -Oldest - } - else - { - $events = Get-WinEvent -LogName Microsoft-Windows-Storage-Storport/Operational ` - -FilterXPath $query ` - -ErrorAction Stop ` - -Oldest - } - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - return - } - - # - # Construct StorageHistory and StorageHistoryAggregate objects - # - - Write-Progress -Activity "Get-StorageHistory" -PercentComplete 0 -CurrentOperation "Constructing storage history objects" -Status "1/2" - - if ($PSBoundParameters.ContainsKey("Errors")) - { - for ($index = 0; $index -lt $events.count;) - { - $event = $events[$index] - $index++ - - [StorageError]$data = [StorageError]::new() - - &$PopulateStorageError -Object ([ref]$data) ` - -EventRecord $event ` - -FriendlyName $friendlyName ` - -SerialNumber $serialNumber ` - -AdapterSerialNumber $adapterSerialNumber ` - -FirmwareRevision $firmwareRevision ` - -DeviceGuid $guid ` - -Number $deviceNumber ` - -BusType $busType ` - -MediaType $mediaType | Out-Null - - $psCmdlet.WriteObject($data) - } - } - else - { - $firstEvent = $true - - for ($index = 0; $index -lt $events.count;) - { - $event = $events[$index] - $index++ - - # - # A StorageHistory object is created for every 505 event. - # Following non-505 events are collaped into it till - # the next 505 event is encountered. All non-505 events - # before the first 505 event are ignored - # - if ($event.Id -ne 505) - { - continue - } - - [StorageHistory]$data = [StorageHistory]::new() - - &$PopulateStorageHistory -Object ([ref]$data) ` - -EventRecord $event ` - -FriendlyName $friendlyName ` - -SerialNumber $serialNumber ` - -AdapterSerialNumber $adapterSerialNumber ` - -FirmwareRevision $firmwareRevision ` - -DeviceGuid $guid ` - -Number $deviceNumber ` - -BusType $busType ` - -MediaType $mediaType | Out-Null - - # - # If there are no IOs, skip - # - - if ($data.TotalIoCount -eq 0) - { - continue - } - - # - # Check if there are any non-505 events following it - # - - for (; $index -lt $events.count; $index++) - { - $event = $events[$index] - - if ($event.Id -eq 505) - { - break - } - - &$AugmentStorageHistory -Object ([ref]$data) ` - -EventRecord $event | Out-Null - } - - if ($PSBoundParameters.ContainsKey("Disaggregate")) - { - $psCmdlet.WriteObject($data) - } - else - { - if ($firstEvent) - { - [StorageHistoryAggregate]$aggregateData = [StorageHistoryAggregate]::new() - $firstEvent = $false - } - - &$PopulateStorageHistoryAggregate -AggregateObject ([ref]$aggregateData) ` - -Object ([ref]$data) | Out-Null - } - } - - if ($aggregateData) - { - $aggregateData.AvgIoLatency = $aggregateData.TotalIoLatency / $aggregateData.TotalIoCount - - if ($aggregateData.TotalQueueIoCount -gt 0) - { - $aggregateData.AvgQueueIoWaitTime = $aggregateData.TotalQueueIoWaitTime / $aggregateData.TotalQueueIoCount - } - - for ($index = 0; $index -lt $aggregateData.BucketCount; $index++) - { - $aggregateData.BucketIoPercent[$index] = ($aggregateData.BucketTotalIoCount[$index] * 100) / $aggregateData.TotalIoCount - } - - $psCmdlet.WriteObject($aggregateData) - } - } - - Write-Progress -Activity "Get-StorageHistory" -Completed -Status "2/2" - } -} - - -$DisplayTimeSeriesChart = { - - Param - ( - [System.String] - $ChartId, - - [System.String] - $Title, - - [System.Collections.ArrayList] - $StorageHistory, - - [System.Boolean] - $ShowDefault, - - [System.Boolean] - $ShowAvgLatency, - - [System.Boolean] - $ShowMaxLatency - ) - - # - # Build a device table with the - # data to chart. - # - - $deviceTable = New-Object System.Collections.Hashtable - - ForEach ($data in $StorageHistory) - { - if ($deviceTable.Contains($data.DeviceId) -eq $false) - { - $deviceData = New-Object -TypeName PsObject - $deviceData | Add-Member -NotePropertyName "DeviceNumber" -NotePropertyValue $data.DeviceNumber - $deviceData | Add-Member -NotePropertyName "FriendlyName" -NotePropertyValue $data.FriendlyName - $deviceData | Add-Member -NotePropertyName "SerialNumber" -NotePropertyValue $data.SerialNumber - - $dataList = New-Object System.Collections.ArrayList - $deviceData | Add-Member -NotePropertyName "DataList" -NotePropertyValue $dataList - - $deviceTable.Add($data.DeviceId, $deviceData) - } - else - { - $deviceData = $deviceTable[$data.DeviceId] - $dataList = $deviceData.DataList - } - - $dataPoint = New-Object -TypeName PsObject - $dataPoint | Add-Member -NotePropertyName "DateTime" -NotePropertyValue $data.EventTime - $dataPoint | Add-Member -NotePropertyName "AvgIoLatency" -NotePropertyValue ($data.AvgIoLatency/10) - $dataPoint | Add-Member -NotePropertyName "MaxIoLatency" -NotePropertyValue ($data.MaxIoLatency/10) - $dataPoint | Add-Member -NotePropertyName "MaxQueueDepth" -NotePropertyValue $data.MaxOutstandingCount - $dataPoint | Add-Member -NotePropertyName "UnresponsiveTime" -NotePropertyValue $data.UnresponsiveTime - $dataPoint | Add-Member -NotePropertyName "ResponsiveTime" -NotePropertyValue $data.ResponsiveTime - - [void]$dataList.Add($dataPoint) - } - - # - # Create a chart - # - - $chart = New-object Windows.Forms.DataVisualization.Charting.Chart - $chart.Anchor = [Windows.Forms.AnchorStyles]::Bottom -bor - [Windows.Forms.AnchorStyles]::Right -bor - [Windows.Forms.AnchorStyles]::Top -bor - [Windows.Forms.AnchorStyles]::Left - - $chart.Width = 1000 - $chart.Height = 800 - $chart.Left = 40 - $chart.Top = 30 - $chart.BackColor = [Drawing.Color]::White - [void]$chart.Titles.Add($Title) - $chart.Titles[0].Font = "segoeuilight,12pt" - - # - # Create a chart area to draw on - # - - $chartArea = New-Object Windows.Forms.DataVisualization.Charting.ChartArea - $chartarea.Name = "TimeSeries" - $chartarea.AxisX.IntervalType = [Windows.Forms.DataVisualization.Charting.DateTimeIntervalType]::Hours - $chartarea.AxisX.IntervalAutoMode = [Windows.Forms.DataVisualization.Charting.IntervalAutoMode]::VariableCount - $chartarea.AxisX.MajorGrid.Enabled = $false - $chartarea.AxisX.LabelStyle.Format = "yyyy/MM/dd h tt" - $chartarea.AxisX.ScaleView.Zoomable = $true - $chartarea.AxisX.ScrollBar.IsPositionedInside = $true - $chartarea.AxisX.ScrollBar.ButtonStyle = [Windows.Forms.DataVisualization.Charting.ScrollBarButtonStyles]::All - $chartarea.CursorX.IsUserEnabled = $true - $chartarea.CursorX.IsUserSelectionEnabled = $true - $chartarea.CursorX.IntervalType = [Windows.Forms.DataVisualization.Charting.DateTimeIntervalType]::Hours - $chartarea.CursorX.AutoScroll = $true - $chartArea.AxisY.Title = "Latency (us)" - $chartArea.AxisY.TitleFont = "segoeuilight,12pt" - $chartarea.AxisY.LabelStyle.Format = "N0" - $chartarea.AxisY.MinorGrid.Enabled = $true - $chartarea.AxisY.MinorGrid.LineDashStyle = [Windows.Forms.DataVisualization.Charting.ChartDashStyle]::Dot - - $chart.ChartAreas.Add($chartArea) - - $legend = New-Object Windows.Forms.DataVisualization.Charting.Legend - $legend.Name = "TimeSeries" - $legend.Docking = [Windows.Forms.DataVisualization.Charting.Docking]::Right - $legend.LegendStyle = [Windows.Forms.DataVisualization.Charting.LegendStyle]::Column - $chart.Legends.Add($legend) - - # - # Build the data to chart - # - - if ($ShowDefault -eq $true) - { - $ShowAvgLatency = $true - - if ($deviceTable.Count -eq 1) - { - $ShowMaxLatency = $true - } - else - { - $ShowMaxLatency = $false - } - } - - ForEach ($deviceId in $deviceTable.Keys) - { - $deviceData = $deviceTable[$deviceId] - $dataList = $deviceData.DataList - - if ($deviceTable.Count -eq 1) - { - [void]$chart.Titles.Add("Latency plot for " + - $deviceData.DeviceNumber + " : " + - $deviceData.FriendlyName + " : " + - $deviceData.SerialNumber) - } - - # - # Show max and avg latencies - # - - if ($ShowAvgLatency -eq $true) - { - if ($deviceTable.Count -eq 1) - { - $seriesName = "Avg" - } - else - { - $seriesName = "$($deviceData.DeviceNumber) : $($deviceData.SerialNumber) : Avg" - } - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::Line - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::DateTime - $chart.Series[$seriesName].Legend = "TimeSeries" - $chart.Series[$seriesName].MarkerStyle = [Windows.Forms.DataVisualization.Charting.MarkerStyle]::Circle - - if ($deviceTable.Count -eq 1) - { - $chart.Series[$seriesName].Color = [Drawing.Color]::Green - } - - ForEach ($dataPoint in $dataList) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($dataPoint.DateTime, $dataPoint.AvgIoLatency) - $point.Tooltip = "Value: #VALY{N0} us\n" + - "At: #VALX{yyyy/MM/dd h:mm tt}\n" + - "Max QD: $($dataPoint.MaxQueueDepth)" - - $chart.Series[$seriesName].Points.Add($point) - } - } - - if ($ShowMaxLatency -eq $true) - { - if ($deviceTable.Count -eq 1) - { - $seriesName = "Max" - } - else - { - $seriesName = "$($deviceData.DeviceNumber) : $($deviceData.SerialNumber) : Max" - } - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::Line - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::DateTime - $chart.Series[$seriesName].Legend = "TimeSeries" - $chart.Series[$seriesName].MarkerStyle = [Windows.Forms.DataVisualization.Charting.MarkerStyle]::Circle - - if ($deviceTable.Count -eq 1) - { - $chart.Series[$seriesName].Color = [Drawing.Color]::Orange - } - - ForEach ($dataPoint in $dataList) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($dataPoint.DateTime, $dataPoint.MaxIoLatency) - $point.Tooltip = "Value: #VALY{N0} us\n" + - "At: #VALX{yyyy/MM/dd h:mm tt}\n" + - "Max QD: $($dataPoint.MaxQueueDepth)" - - $chart.Series[$seriesName].Points.Add($point) - } - } - - # - # Show interesting events when there - # is a single device - # - - if ($deviceTable.Count -eq 1) - { - $seriesName = "Events" - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::Point - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::DateTime - $chart.Series[$seriesName].Legend = "TimeSeries" - $chart.Series[$seriesName].MarkerStyle = [Windows.Forms.DataVisualization.Charting.MarkerStyle]::Square - $chart.Series[$seriesName].MarkerSize = 5 - $chart.Series[$seriesName].Color = [Drawing.Color]::Red - - # - # Find the level at which to show the points - # - - $value = 0 - - ForEach ($dataPoint in $dataList) - { - if ($ShowMaxLatency -eq $true) - { - if ($dataPoint.MaxIoLatency -gt $value) - { - $value = $dataPoint.MaxIoLatency - } - } - else - { - if ($dataPoint.AvgIoLatency -gt $value) - { - $value = $dataPoint.AvgIoLatency - } - } - } - - ForEach ($dataPoint in $dataList) - { - ForEach ($time in $dataPoint.UnresponsiveTime) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($time, $value) - $point.Tooltip = "Marked unresponsive at #VALX{yyyy/MM/dd h:mm tt}\n" - - $chart.Series[$seriesName].Points.Add($point) - } - - ForEach ($time in $dataPoint.ResponsiveTime) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($time, $value) - $point.Tooltip = "Marked responsive at #VALX{yyyy/MM/dd h:mm tt}\n" - - $chart.Series[$seriesName].Points.Add($point) - } - } - } - } - - $chart.ChartAreas[0].AxisX.LabelStyle.Angle = -45 - - # - # Display the chart on a form - # - - $form = New-Object Windows.Forms.Form - $form.Text = "Storage Performance Chart" - $form.Width = 1100 - $form.Height = 900 - $form.controls.add($chart) - $form.Add_Shown({$form.Activate()}) - - [void]$form.ShowDialog() - $form.Close() - $form.Dispose() - - [void]$StorageHistoryCharts.Host.Runspace.Events.GenerateEvent("StorageHistoryChart.Close", $null, $null, $ChartId) -} - - -$DisplaySummaryChart = { - - Param - ( - [System.String] - $ChartId, - - [System.String] - $Title, - - [System.Collections.ArrayList] - $StorageHistory, - - [System.Boolean] - $ShowDefault, - - [System.Boolean] - $ShowAvgLatency, - - [System.Boolean] - $ShowMaxLatency - ) - - # - # Create a chart - # - - $chart = New-object Windows.Forms.DataVisualization.Charting.Chart - $chart.Anchor = [Windows.Forms.AnchorStyles]::Bottom -bor - [Windows.Forms.AnchorStyles]::Right -bor - [Windows.Forms.AnchorStyles]::Top -bor - [Windows.Forms.AnchorStyles]::Left - - $chart.Width = 1000 - $chart.Height = 800 - $chart.Left = 40 - $chart.Top = 30 - $chart.BackColor = [Drawing.Color]::White - [void]$chart.Titles.Add($Title) - $chart.Titles[0].Font = "segoeuilight,12pt" - - if ($StorageHistory.Count -eq 1) - { - [void]$chart.Titles.Add("IO Distribution for " + - $StorageHistory[0].DeviceNumber + " : " + - $StorageHistory[0].FriendlyName + " : " + - $StorageHistory[0].SerialNumber) - } - else - { - [void]$chart.Titles.Add("Latency comparison") - } - - # - # Create a chart area to draw on - # - - $chartArea = New-Object Windows.Forms.DataVisualization.Charting.ChartArea - $chartarea.Name = "Summary" - $chartarea.AxisX.Interval = 1 - $chartarea.AxisX.IntervalAutoMode = [Windows.Forms.DataVisualization.Charting.IntervalAutoMode]::FixedCount - $chartarea.AxisX.MajorGrid.Enabled = $false - - # For a single device show IO distribution. - # For multiple devices show avg and max latency. - - if ($StorageHistory.Count -eq 1) - { - $chartArea.AxisX.Title = "Latency buckets (us)" - $chartArea.AxisX.TitleFont = "segoeuilight,12pt" - $chartArea.AxisY.Title = "IO Count" - } - else - { - $chartarea.AxisX.ScaleView.Size = [Math]::Min($StorageHistory.Count, 40) - $chartarea.AxisX.ScaleView.Zoomable = $true - $chartarea.AxisX.ScrollBar.IsPositionedInside = $true - $chartarea.AxisX.ScrollBar.ButtonStyle = [Windows.Forms.DataVisualization.Charting.ScrollBarButtonStyles]::All - $chartarea.CursorX.IsUserEnabled = $true - $chartarea.CursorX.IsUserSelectionEnabled = $true - $chartarea.CursorX.AutoScroll = $true - $chartArea.AxisY.Title = "Latency (us)" - } - - $chartArea.AxisY.TitleFont = "segoeuilight,12pt" - $chartarea.AxisY.LabelStyle.Format = "N0" - $chartarea.AxisY.MinorGrid.Enabled = $true - $chartarea.AxisY.MinorGrid.LineDashStyle = [Windows.Forms.DataVisualization.Charting.ChartDashStyle]::Dot - $chart.ChartAreas.Add($chartArea) - - $legend = New-Object Windows.Forms.DataVisualization.Charting.Legend - $legend.Name = "Summary" - $legend.Docking = [Windows.Forms.DataVisualization.Charting.Docking]::Right - $legend.LegendStyle = [Windows.Forms.DataVisualization.Charting.LegendStyle]::Column - $chart.Legends.Add($legend) - - # - # Build the data to chart - # - - if ($StorageHistory.Count -eq 1) - { - $data = $StorageHistory[0] - - $seriesName = "SuccessIoCount" - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::StackedColumn - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::String - $chart.Series[$seriesName].Legend = "Summary" - $chart.Series[$seriesName].Color = [Drawing.Color]::Green - - for ($index = 0; $index -lt $data.BucketCount; $index++) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY([String]::Format('{0:N0}', $data.BucketIoLatency[$index] / 10), - $data.BucketSuccessIoCount[$index]) - $point.Tooltip = [String]::Format('Success: {0:N0}\nTotal: {1:N0}', - $data.BucketSuccessIoCount[$index], - $data.BucketTotalIoCount[$index]) - - $chart.Series[$seriesName].Points.Add($point) - } - - $seriesName = "FailedIoCount" - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::StackedColumn - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::String - $chart.Series[$seriesName].Legend = "Summary" - $chart.Series[$seriesName].Color = [Drawing.Color]::Red - - for ($index = 0; $index -lt $data.BucketCount; $index++) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY([String]::Format('{0:N0}', $data.BucketIoLatency[$index] / 10), - $data.BucketFailedIoCount[$index]) - $point.Tooltip = [String]::Format('Failed: {0:N0}\nTotal: {1:N0}', - $data.BucketFailedIoCount[$index], - $data.BucketTotalIoCount[$index]) - - $chart.Series[$seriesName].Points.Add($point) - } - } - else - { - if ($ShowDefault -eq $true) - { - $ShowAvgLatency = $true - $ShowMaxLatency = $true - } - - if ($ShowAvgLatency -eq $true) - { - $seriesName = "Avg" - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::Column - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::String - $chart.Series[$seriesName].Legend = "Summary" - $chart.Series[$seriesName].Color = [Drawing.Color]::Green - - ForEach ($data in $StorageHistory) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($data.DeviceNumber + " : " + $data.SerialNumber, - $data.AvgIoLatency / 10) - $point.Tooltip = "Avg: #VALY{N0} us\n" + - [String]::Format('Total Io Count: {0:N0}\nSuccess Io Count: {1:N0}\nFailed Io Count: {2:N0}', - $data.TotalIoCount, $data.SuccessIoCount, $data.FailedIoCount) - - $chart.Series[$seriesName].Points.Add($point) - } - } - - if ($ShowMaxLatency -eq $true) - { - $seriesName = "Max" - - [void]$chart.Series.Add($seriesName) - $chart.Series[$seriesName].ChartType = [Windows.Forms.DataVisualization.Charting.SeriesChartType]::Column - $chart.Series[$seriesName].XValueType = [Windows.Forms.DataVisualization.Charting.ChartValueType]::String - $chart.Series[$seriesName].Legend = "Summary" - $chart.Series[$seriesName].Color = [Drawing.Color]::Orange - - ForEach ($data in $StorageHistory) - { - $point = New-Object Windows.Forms.DataVisualization.Charting.DataPoint - $point.SetValueXY($data.DeviceNumber + " : " + $data.SerialNumber, - $data.MaxIoLatency / 10) - $point.Tooltip = "Max: #VALY{N0} us\n" + - [String]::Format('Total Io Count: {0:N0}\nSuccess Io Count: {1:N0}\nFailed Io Count: {2:N0}', - $data.TotalIoCount, $data.SuccessIoCount, $data.FailedIoCount) - - $chart.Series[$seriesName].Points.Add($point) - } - } - - $chart.ChartAreas[0].AxisX.LabelStyle.Angle = -45 - } - - # - # Display the chart on a form - # - - $form = New-Object Windows.Forms.Form - $form.Text = "Storage Performance Chart" - $form.Width = 1100 - $form.Height = 900 - $form.controls.add($chart) - $form.Add_Shown({$form.Activate()}) - - [void]$form.ShowDialog() - $form.Close() - $form.Dispose() - - [void]$StorageHistoryCharts.Host.Runspace.Events.GenerateEvent("StorageHistoryChart.Close", $null, $null, $ChartId) -} - - -$StorageHistoryChartClose = { - - $chartId = $event.MessageData - $runspace = $Global:StorageHistoryCharts[$chartId] - - $runspace.Close() - $runspace.Dispose() - - $Global:StorageHistoryCharts.Remove($chartId) -} - - -function Show-StorageHistory -{ - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.Collections.ArrayList] - [Parameter( - ParameterSetName = 'ByObjects', - ValueFromPipeline = $false, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $Objects, - - #### ------------------------- Common method parameters ----------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByObjects', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Title, - - [Switch] - [Parameter( - ParameterSetName = 'ByObjects', - Mandatory = $false)] - $DisplayAvgLatency, - - [Switch] - [Parameter( - ParameterSetName = 'ByObjects', - Mandatory = $false)] - $DisplayMaxLatency - ) - - Begin - { - } - - Process - { - if ($PSEdition -ne "Desktop") - { - # - # Full PowerShell is required for charting - # - $errorObject = CreateErrorRecord -ErrorId "NotSupported" ` - -ErrorMessage "This cmdlet requires full powershell support" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::NotEnabled) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # - # Global state initialization - # - - Add-Type -AssemblyName System.Windows.Forms - Add-Type -AssemblyName System.Windows.Forms.DataVisualization - - $Global:StorageHistoryCharts.Host = $Host - - $subscriber = Get-EventSubscriber -SourceIdentifier "StorageHistoryChart.Close" ` - -ErrorAction SilentlyContinue - - if ($subscriber -eq $null) - { - Register-EngineEvent -SourceIdentifier "StorageHistoryChart.Close" ` - -Action $StorageHistoryChartClose | Out-Null - } - - # - # Display chart based on the data passed - # - - $type = [String]::Empty - $storageHistory = New-Object System.Collections.ArrayList - - ForEach ($object in $Objects) - { - if ([String]::IsNullOrEmpty($type)) - { - $type = $object.PSObject.TypeNames[0] - } - - if ($object.PSObject.TypeNames[0] -eq $type) - { - [void]$storageHistory.Add($object) - } - } - - $chartId = [System.Guid]::newguid().ToString() - - $runspace = [RunspaceFactory]::CreateRunspace() - $runspace.ApartmentState = "STA" - $runspace.ThreadOptions = "ReuseThread" - $runspace.Open() - $runspace.SessionStateProxy.SetVariable("StorageHistoryCharts",$Global:StorageHistoryCharts) - - $Global:StorageHistoryCharts.Add($chartId, $runspace) - - $powershell = [PowerShell]::Create() - - $showDefault = $true - $showAvgLatency = $false - $showMaxLatency = $false - - if ($PSBoundParameters.ContainsKey("DisplayAvgLatency")) - { - $showDefault = $false - $showAvgLatency = $true - } - - if ($PSBoundParameters.ContainsKey("DisplayMaxLatency")) - { - $showDefault = $false - $showMaxLatency = $true - } - - if ($type -eq "Microsoft.Windows.StorageManagement.StorageHistory") - { - [void]$powershell.AddScript($DisplayTimeSeriesChart) - } - elseif ($type -eq "Microsoft.Windows.StorageManagement.StorageHistoryAggregate") - { - [void]$powershell.AddScript($DisplaySummaryChart) - } - else - { - return - } - - [void]$powershell.AddArgument($chartId) - [void]$powershell.AddArgument($Title) - [void]$powershell.AddArgument($storageHistory) - [void]$powershell.AddArgument($showDefault) - [void]$powershell.AddArgument($showAvgLatency) - [void]$powershell.AddArgument($showMaxLatency) - - $powershell.Runspace = $runspace - - [void]$powershell.BeginInvoke() - } -} - - -function Get-PhysicalDisk -{ - [CmdletBinding( DefaultParameterSetName = "ByUniqueId" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - ValueFromPipeline = $true, - ValueFromPipelineByPropertyName = $true, - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByObjectId', - ValueFromPipeline = $true, - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - [Alias("PhysicalDiskObjectId")] - $ObjectId, - - [System.String] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - ValueFromPipeline = $false, - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $DeviceNumber, - - [System.String] - [Parameter( - ParameterSetName = 'ByName', - ValueFromPipeline = $true, - Mandatory = $false, - Position = 0)] - [ValidateNotNullOrEmpty()] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'ByName', - ValueFromPipeline = $true, - Mandatory = $false, - Position = 1)] - [ValidateNotNullOrEmpty()] - $SerialNumber, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByInputObject', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageEnclosure")] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageEnclosure, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageScaleUnit")] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageScaleUnit, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageChassis")] - [Parameter( - ParameterSetName = 'ByStorageChassis', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageChassis, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageRack")] - [Parameter( - ParameterSetName = 'ByStorageRack', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageRack, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSite")] - [Parameter( - ParameterSetName = 'ByStorageSite', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSite, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageNode")] - [Parameter( - ParameterSetName = 'ByStorageNode', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageNode, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StoragePool")] - [Parameter( - ParameterSetName = 'ByStoragePool', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StoragePool, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk")] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDisk, - - #### ------------------ VirtualDisk association parameters -------------------#### - - [System.UInt64] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $VirtualRangeMin, - - [System.UInt64] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $VirtualRangeMax, - - [System.Boolean] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $HasAllocations, - - [System.Boolean] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $SelectedForUse, - - [Switch] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $NoRedundancy, - - #### --------- StoragePool and VirtualDisk association parameters ------------#### - - [Switch] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $HasMetadata, - - #### ------------------ StorageNode association parameters -------------------#### - - [Switch] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - $PhysicallyConnected, - - #### ------------------------- Common parameters -----------------------------#### - - [PhysicalDiskUsage] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $Usage, - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Description, - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Manufacturer, - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Model, - - [System.Boolean] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $CanPool, - - [PhysicalDiskHealthStatus] - [Parameter( - ParameterSetName = 'ByUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByObjectId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDeviceNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageScaleUnit', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageChassis', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageRack', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSite', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageNode', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $HealthStatus, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - [flagsattribute()] - Enum PhysicalDiskUsage - { - Unknown = 0 - AutoSelect = 1 - ManualSelect = 2 - HotSpare = 3 - Retired = 4 - Journal = 5 - } - - [flagsattribute()] - Enum PhysicalDiskHealthStatus - { - Healthy = 0 - Warning = 1 - Unhealthy = 2 - Unknown = 5 - } - } - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance objects. - - $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions - - switch -regex ($psCmdlet.ParameterSetName) - { - { @( ` - "ByInputObject" ` - ) -contains $_ ` - } - { - $cimInstance = New-Object Microsoft.Management.Infrastructure.CimInstance("MSFT_PhysicalDisk") - - $cimInstance.CimInstanceProperties.Add([Microsoft.Management.Infrastructure.CimProperty]::Create("ObjectId", $InputObject.ObjectId, "String", "Key")) - - $instance = $CimSession.GetInstance($StorageNamespace, - $cimInstance); - break; - } - - { @( ` - "ByObjectId", ` - "ByUniqueId", ` - "ByDeviceNumber", ` - "ByName" ` - ) -contains $_ ` - } - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk"); - break; - } - - { @( ` - "ByStorageSubsystem", ` - "ByStoragePool", ` - "ByStorageEnclosure", ` - "ByStorageNode", ` - "ByVirtualDisk" ` - ) -contains $_ ` - } - { - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $subsystem = $StorageSubsystem - } - elseif ($PSBoundParameters.ContainsKey("StoragePool")) - { - $subsystem = $StoragePool | get-storagesubsystem -CimSession $CimSession - } - elseif ($PSBoundParameters.ContainsKey("StorageEnclosure")) - { - $subsystem = $StorageEnclosure | get-storagesubsystem -CimSession $CimSession - } - elseif ($PSBoundParameters.ContainsKey("StorageNode")) - { - $subsystem = $StorageNode | get-storagesubsystem -CimSession $CimSession - } - elseif ($PSBoundParameters.ContainsKey("VirtualDisk")) - { - $subsystem = $VirtualDisk | get-storagesubsystem -CimSession $CimSession - } - - # If the subsystem model is "Windows Storage", - # perform associations using enumeration - - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageSubsystem", $false) - $options.SetCustomOption("InputObjectId", $StorageSubsystem.ObjectId, $false) - - if ($subsystem.Model -like "*Windows Storage*") - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options) - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StorageSubsystem, - "MSFT_StorageSubsystemToPhysicalDisk", - "MSFT_PhysicalDisk", - "StorageSubsystem", - "PhysicalDisk", - $options) - } - } - elseif ($PSBoundParameters.ContainsKey("StoragePool")) - { - $options.SetCustomOption("InputClassName", "MSFT_StoragePool", $false) - $options.SetCustomOption("InputObjectId", $StoragePool.ObjectId, $false) - - if ($PSBoundParameters.ContainsKey("HasMetadata")) - { - $options.SetCustomOption("HasMetadata", $HasMetadata, $false) - } - - if ($subsystem.Model -like "*Windows Storage*") - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options) - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StoragePool, - "MSFT_StoragePoolToPhysicalDisk", - "MSFT_PhysicalDisk", - "StoragePool", - "PhysicalDisk", - $options) - } - } - elseif ($PSBoundParameters.ContainsKey("StorageEnclosure")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageEnclosure", $false) - $options.SetCustomOption("InputObjectId", $StorageEnclosure.ObjectId, $false) - - if ($subsystem.Model -like "*Windows Storage*") - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options); - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StorageEnclosure, - "MSFT_StorageEnclosureToPhysicalDisk", - "MSFT_PhysicalDisk", - "StorageEnclosure", - "PhysicalDisk", - $options); - } - } - elseif ($PSBoundParameters.ContainsKey("StorageNode")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageNode", $false) - $options.SetCustomOption("InputObjectId", $StorageNode.ObjectId, $false) - - if ($PSBoundParameters.ContainsKey("PhysicallyConnected")) - { - $options.SetCustomOption("PhysicallyConnected", $true, $false) - } - - if ($subsystem.Model -like "*Windows Storage*") - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options); - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StorageNode, - "MSFT_StorageNodeToPhysicalDisk", - "MSFT_PhysicalDisk", - "StorageNode", - "PhysicalDisk", - $options); - } - } - elseif ($PSBoundParameters.ContainsKey("VirtualDisk")) - { - $options.SetCustomOption("InputClassName", "MSFT_VirtualDisk", $false) - $options.SetCustomOption("InputObjectId", $VirtualDisk.ObjectId, $false) - - if ($PSBoundParameters.ContainsKey("VirtualRangeMin")) - { - $options.SetCustomOption("VirtualRangeMin", $VirtualRangeMin, [Microsoft.Management.Infrastructure.CimType]::UInt64, $false) - } - - if ($PSBoundParameters.ContainsKey("VirtualRangeMax")) - { - $options.SetCustomOption("VirtualRangeMax", $VirtualRangeMax, [Microsoft.Management.Infrastructure.CimType]::UInt64, $false) - } - - if ($PSBoundParameters.ContainsKey("HasAllocations")) - { - $options.SetCustomOption("HasAllocations", $HasAllocations, $false) - } - - if ($PSBoundParameters.ContainsKey("SelectedForUse")) - { - $options.SetCustomOption("SelectedForUse", $SelectedForUse, $false) - } - - if ($PSBoundParameters.ContainsKey("HasMetadata")) - { - $options.SetCustomOption("HasMetadata", $HasMetadata, $false) - } - - if ($PSBoundParameters.ContainsKey("NoRedundancy")) - { - $options.SetCustomOption("NoRedundancy", $true, $false) - } - - if ($subsystem.Model -like "*Windows Storage*") - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options); - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $VirtualDisk, - "MSFT_VirtualDiskToPhysicalDisk", - "MSFT_PhysicalDisk", - "VirtualDisk", - "PhysicalDisk", - $options); - } - } - - break; - } - { @( ` - "ByStorageScaleUnit", ` - "ByStorageChassis", ` - "ByStorageRack", ` - "ByStorageSite" ` - ) -contains $_ ` - } - { - if ($PSBoundParameters.ContainsKey("StorageScaleUnit")) - { - $inputObject = $StorageScaleUnit - } - elseif ($PSBoundParameters.ContainsKey("StorageChassis")) - { - $inputObject = $StorageChassis - } - elseif ($PSBoundParameters.ContainsKey("StorageRack")) - { - $inputObject = $StorageRack - } - elseif ($PSBoundParameters.ContainsKey("StorageSite")) - { - $inputObject = $StorageSite - } - - # If the subsystem model is "Windows Storage", - # perform associations using enumeration - - $subsystem = $inputObject | get-storagesubsystem -CimSession $CimSession - - if ($subsystem.Model -like "*Windows Storage*") - { - $options.SetCustomOption("InputClassName", $inputObject.ClassName, $false) - $options.SetCustomOption("InputObjectId", $inputObject.ObjectId, $false) - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options); - } - else - { - $options.SetCustomOption("ResultObject", "MSFT_PhysicalDisk", $false) - - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $inputObject, - "MSFT_StorageFaultDomainToStorageFaultDomain", - "MSFT_PhysicalDisk", - "SourceStorageFaultDomain", - "TargetStorageFaultDomain", - $options); - } - - break; - } - } - - $instances = @() - - if ($psCmdlet.ParameterSetName -eq "ByInputObject") - { - $instances += $instance - } - else - { - $enumerator = $results.GetEnumerator() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - - ## Filter by optional input parameters - - if (($PSBoundParameters.ContainsKey("ObjectId")) -and - ($instance.ObjectId -notlike $ObjectId)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("UniqueId")) -and - ($instance.UniqueId -notlike $UniqueId)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("DeviceNumber")) -and - ($instance.DeviceId -ne $DeviceNumber)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("FriendlyName")) -and - ($instance.FriendlyName -notlike $FriendlyName)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("SerialNumber")) -and - ($instance.SerialNumber -notlike $SerialNumber)) - { - continue - } - - if ($PSBoundParameters.ContainsKey("Usage")) - { - $matchFound = $true - - switch -regex ($Usage) - { - { @( ` - "Unknown", ` - "Retired", ` - "Journal" ` - ) -contains $_ ` - } - { - if ( $instance.Usage -ne $Usage ) - { - $matchFound = $false - break - } - } - - { @( ` - "AutoSelect" ` - ) -contains $_ ` - } - { - if ( $instance.Usage -ne "Auto-Select" ) - { - $matchFound = $false - break - } - } - - { @( ` - "ManualSelect" ` - ) -contains $_ ` - } - { - if ( $instance.Usage -ne "Manual-Select" ) - { - $matchFound = $false - break - } - } - - { @( ` - "HotSpare" ` - ) -contains $_ ` - } - { - if ( $instance.Usage -ne "Hot Spare" ) - { - $matchFound = $false - break - } - } - } - - if ( $matchFound -eq $false ) - { - continue - } - } - - if (($PSBoundParameters.ContainsKey("Description")) -and - ($instance.Description -notlike $Description)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("Manufacturer")) -and - ($instance.Manufacturer -ne $Manufacturer)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("Model")) -and - ($instance.Model -ne $Model)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("CanPool")) -and - ($instance.CanPool -ne $CanPool)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("HealthStatus")) -and - ($instance.HealthStatus -ne $HealthStatus)) - { - continue - } - - $instances += $instance - } - } - - $instances - } -} - - -function Get-PhysicalExtent -{ - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk")] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDisk, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageTier")] - [Parameter( - ParameterSetName = 'ByStorageTier', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageTier, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance objects - - switch ($psCmdlet.ParameterSetName) - { - "ByVirtualDisk" { $inputObject = $VirtualDisk; break; } - "ByStorageTier" { $inputObject = $StorageTier; break; } - "ByPhysicalDisk" { $inputObject = $PhysicalDisk; break; } - } - - $instances = @() - - try - { - $output = Invoke-CimMethod -CimSession $CimSession -InputObject $inputObject -MethodName "GetPhysicalExtent" -ErrorAction Stop - $enumerator = $output.PhysicalExtents.GetEnumerator() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - $instance.PSObject.TypeNames.Insert(0, "Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalExtent") - - $instances += $instance - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - - $instances - } -} - - -function Get-PhysicalExtentAssociation -{ - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalExtent")] - [Parameter( - ParameterSetName = 'ByInputObject', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - $virtualDisk = Get-VirtualDisk -CimSession $CimSession -UniqueId $InputObject.VirtualDiskUniqueId -ErrorAction Stop - - if ($InputObject.StorageTierUniqueId -ne $null) - { - $storageTier = Get-StorageTier -CimSession $CimSession -UniqueId $InputObject.StorageTierUniqueId -ErrorAction Stop - } - - $physicalDisk = Get-PhysicalDisk -CimSession $CimSession -UniqueId $InputObject.PhysicalDiskUniqueId -ErrorAction Stop - - $associations = [pscustomobject]@{ - VirtualDisk = $virtualDisk; - StorageTier = $storageTier; - PhysicalDisk = $physicalDisk; - } - - $associations - } -} - - -function Enable-PhysicalDiskIdentification -{ - [CmdletBinding( DefaultParameterSetName = "ByName", ConfirmImpact="Low" )] - [Alias("Enable-PhysicalDiskIndication")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByName', - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $FriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByInputObject', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - #### ------------------------- Common method parameters ----------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if (-not $AsJob) - { - Write-Progress -Activity "Enable-PhysicalDiskIdentification" -PercentComplete 0 -CurrentOperation "Gathering objects" -Status "0/2" - } - - ## Gather the instance objects - - switch ($psCmdlet.ParameterSetName) - { - "ByInputObject" { $Instances = $InputObject; break; } - "ByUniqueId" { $Instances = Get-PhysicalDisk -UniqueId $UniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByName" { $Instances = Get-PhysicalDisk -FriendlyName $FriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $instances) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $arguments = @{ "EnableIndication" = $true } - $errorObject = $null - - if (-not $asjob) - { - Write-Progress -Activity "Enable-PhysicalDiskIdentification" -PercentComplete 30 -CurrentOperation "Executing method" -Status "1/2" - } - - ForEach ( $instance in $instances ) - { - try - { - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $instance -MethodName Maintenance -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - } - - if (-not $asjob) - { - Write-Progress -Activity "Enable-PhysicalDiskIdentification" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - Start-Job -Name EnablePhysicalDiskIdentification -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $Instances) - } - else - { - &$methodblock $CimSession $p $Instances - } - } -} - - -function Disable-PhysicalDiskIdentification -{ - [CmdletBinding( DefaultParameterSetName = "ByName", ConfirmImpact="Low" )] - [Alias("Disable-PhysicalDiskIndication")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByName', - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $FriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByInputObject', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - #### ------------------------- Common method parameters ----------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if (-not $AsJob) - { - Write-Progress -Activity "Disable-PhysicalDiskIdentification" -PercentComplete 0 -CurrentOperation "Gathering objects" -Status "0/2" - } - - ## Gather the instance objects - - switch ($psCmdlet.ParameterSetName) - { - "ByInputObject" { $Instances = $InputObject; break; } - "ByUniqueId" { $Instances = Get-PhysicalDisk -UniqueId $UniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByName" { $Instances = Get-PhysicalDisk -FriendlyName $FriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $instances) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $arguments = @{ "EnableIndication" = $false } - $errorObject = $null - - if (-not $asjob) - { - Write-Progress -Activity "Disable-PhysicalDiskIdentification" -PercentComplete 30 -CurrentOperation "Executing method" -Status "1/2" - } - - ForEach ( $instance in $instances ) - { - try - { - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $instance -MethodName Maintenance -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - } - - if (-not $asjob) - { - Write-Progress -Activity "Disable-PhysicalDiskIdentification" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - Start-Job -Name DisablePhysicalDiskIdentification -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $Instances) - } - else - { - &$methodblock $CimSession $p $Instances - } - } -} - - -function Reset-PhysicalDisk -{ - [CmdletBinding( DefaultParameterSetName = "ByName", ConfirmImpact="Medium" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByUniqueId', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByName', - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $FriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByInputObject', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - #### ------------------------- Common method parameters ----------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if (-not $AsJob) - { - Write-Progress -Activity "Reset-PhysicalDisk" -PercentComplete 0 -CurrentOperation "Gathering objects" -Status "0/2" - } - - ## Gather the instance objects - - switch ($psCmdlet.ParameterSetName) - { - "ByInputObject" { $Instances = $InputObject; break; } - "ByUniqueId" { $Instances = Get-PhysicalDisk -UniqueId $UniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByName" { $Instances = Get-PhysicalDisk -FriendlyName $FriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $instances) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - - if (-not $asjob) - { - Write-Progress -Activity "Reset-PhysicalDisk" -PercentComplete 30 -CurrentOperation "Executing method" -Status "1/2" - } - - ForEach ( $instance in $instances ) - { - try - { - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $instance -MethodName Reset -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - } - - if (-not $asjob) - { - Write-Progress -Activity "Reset-PhysicalDisk" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - Start-Job -Name ResetPhysicalDisk -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $Instances) - } - else - { - &$methodblock $CimSession $p $Instances - } - } -} - - -function Get-StorageFirmwareInformation -{ - [CmdletBinding( DefaultParameterSetName = "ByPhysicalDiskFriendlyName", ConfirmImpact="None" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDiskUniqueId', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - [Alias("PhysicalDiskUniqueId")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDiskFriendlyName', - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - [Alias("PhysicalDiskFriendlyName")] - $FriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("PhysicalDisk")] - $InputObject, - - [System.String] - [Parameter( - ParameterSetName = 'ByStorageEnclosureUniqueId', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageEnclosureUniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByStorageEnclosureFriendlyName', - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StorageEnclosureFriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageEnclosure")] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageEnclosure, - - #### ------------------------- Common method parameters ----------------------#### - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByPhysicalDisk" { $PhysicalDiskInstance = $InputObject; break; } - "ByPhysicalDiskUniqueId" { $PhysicalDiskInstance = Get-PhysicalDisk -UniqueId $UniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByPhysicalDiskFriendlyName" { $PhysicalDiskInstance = Get-PhysicalDisk -FriendlyName $FriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - - "ByStorageEnclosure" { $StorageEnclosureInstance = $StorageEnclosure; break; } - "ByStorageEnclosureUniqueId" { $StorageEnclosureInstance = Get-StorageEnclosure -UniqueId $StorageEnclosureUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageEnclosureFriendlyName" { $StorageEnclosureInstance = Get-StorageEnclosure -FriendlyName $StorageEnclosureFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - } - - if (-not $AsJob) - { - Write-Progress -Activity "Get-StorageFirmwareInformation" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $inputobject) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - - if (-not $asjob) - { - Write-Progress -Activity "Get-StorageFirmwareInformation" -PercentComplete 30 -CurrentOperation "Getting storage firmware information" -Status "1/2" - } - - try - { - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $inputobject -MethodName GetFirmwareInformation -ErrorAction Stop - - $progressPreference = "Continue" - - $firmwareInformation = [pscustomobject]@{ - Object = $inputobject; - SupportsUpdate = $output.SupportsUpdate; - NumberOfSlots = $output.NumberOfSlots; - ActiveSlotNumber = $output.ActiveSlotNumber; - SlotNumber = $output.SlotNumber; - IsSlotWritable = $output.IsSlotWritable; - FirmwareVersionInSlot = $output.FirmwareVersionInSlot; - } - - $psCmdlet.WriteObject($firmwareInformation); - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - - if (-not $asjob) - { - Write-Progress -Activity "Get-StorageFirmwareInformation" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - if ($PhysicalDiskInstance) - { - Start-Job -Name GetStorageFirmwareInformation -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $PhysicalDiskInstance) - } - elseif ($StorageEnclosureInstance) - { - Start-Job -Name GetStorageFirmwareInformation -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $StorageEnclosureInstance) - } - } - else - { - if ($PhysicalDiskInstance) - { - &$methodblock $CimSession $p $PhysicalDiskInstance - } - elseif ($StorageEnclosureInstance) - { - &$methodblock $CimSession $p $StorageEnclosureInstance - } - } - } -} - - -function Update-StorageFirmware -{ - [CmdletBinding( DefaultParameterSetName = "ByPhysicalDiskFriendlyName", ConfirmImpact="Medium" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDiskUniqueId', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - [Alias("PhysicalDiskUniqueId")] - $UniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDiskFriendlyName', - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - [Alias("PhysicalDiskFriendlyName")] - $FriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("PhysicalDisk")] - $InputObject, - - [System.String] - [Parameter( - ParameterSetName = 'ByStorageEnclosureUniqueId', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageEnclosureUniqueId, - - [System.String] - [Parameter( - ParameterSetName = 'ByStorageEnclosureFriendlyName', - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StorageEnclosureFriendlyName, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageEnclosure")] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageEnclosure, - - #### ------------------------- Common method parameters ----------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByPhysicalDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByPhysicalDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosureUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosureFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - $ImagePath, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByPhysicalDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByPhysicalDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosureUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosureFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageEnclosure', - Mandatory = $false)] - $SlotNumber, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByPhysicalDisk" { $PhysicalDiskInstance = $InputObject; break; } - "ByPhysicalDiskUniqueId" { $PhysicalDiskInstance = Get-PhysicalDisk -UniqueId $UniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByPhysicalDiskFriendlyName" { $PhysicalDiskInstance = Get-PhysicalDisk -FriendlyName $FriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - - "ByStorageEnclosure" { $StorageEnclosureInstance = $StorageEnclosure; break; } - "ByStorageEnclosureUniqueId" { $StorageEnclosureInstance = Get-StorageEnclosure -UniqueId $StorageEnclosureUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageEnclosureFriendlyName" { $StorageEnclosureInstance = Get-StorageEnclosure -FriendlyName $StorageEnclosureFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - } - - if (-not $AsJob) - { - Write-Progress -Activity "Update-StorageFirmware" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - - ## Populate arguments list - - $arguments = @{} - - if ($PSBoundParameters.ContainsKey("ImagePath")) - { - $arguments.Add("ImagePath", $ImagePath) - } - - if ($PSBoundParameters.ContainsKey("SlotNumber")) - { - $arguments.Add("SlotNumber", $SlotNumber) - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $inputobject, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - - if (-not $asjob) - { - Write-Progress -Activity "Update-StorageFirmware" -PercentComplete 30 -CurrentOperation "Updating storage firmware" -Status "1/2" - } - - try - { - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $inputobject -MethodName UpdateFirmware -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - - if (-not $asjob) - { - Write-Progress -Activity "Update-StorageFirmware" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - if ($PhysicalDiskInstance) - { - Start-Job -Name UpdateStorageFirmware -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $PhysicalDiskInstance, $arguments) - } - elseif ($StorageEnclosureInstance) - { - Start-Job -Name UpdateStorageFirmware -ScriptBlock $methodblock -ArgumentList @($CimSession, $p, $StorageEnclosureInstance, $arguments) - } - } - else - { - if ($PhysicalDiskInstance) - { - &$methodblock $CimSession $p $PhysicalDiskInstance $arguments - } - elseif ($StorageEnclosureInstance) - { - &$methodblock $CimSession $p $StorageEnclosureInstance $arguments - } - } - } -} - - -function Get-PhysicalDiskStorageNodeView -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageNode")] - [Parameter( - ValueFromPipeline = $true)] - $StorageNode, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ValueFromPipeline = $true)] - $PhysicalDisk, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the association objects - $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageNode", $false) - $options.SetCustomOption("InputObjectId", $StorageNode.ObjectId, $false) - } - elseif ($PSBoundParameters.ContainsKey("PhysicalDisk")) - { - $options.SetCustomOption("InputClassName", "MSFT_PhysicalDisk", $false) - $options.SetCustomOption("InputObjectId", $PhysicalDisk.ObjectId, $false) - } - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_StorageNodeToPhysicalDisk", - $options - ) - - $enumerator = $results.GetEnumerator() - $instances = @() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - if ($instance.StorageNodeObjectId -ne $StorageNode.ObjectId) - { - continue - } - } - elseif ($PSBoundParameters.ContainsKey("PhysicalDisk")) - { - if ($instance.PhysicalDiskObjectId -ne $PhysicalDisk.ObjectId) - { - continue - } - } - - $instances += $instance - } - - $instances - } -} - - -function Get-DiskStorageNodeView -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageNode")] - [Parameter( - ValueFromPipeline = $true)] - $StorageNode, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_Disk")] - [Parameter( - ValueFromPipeline = $true)] - $Disk, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the association objects - $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageNode", $false) - $options.SetCustomOption("InputObjectId", $StorageNode.ObjectId, $false) - } - elseif ($PSBoundParameters.ContainsKey("Disk")) - { - $options.SetCustomOption("InputClassName", "MSFT_Disk", $false) - $options.SetCustomOption("InputObjectId", $Disk.ObjectId, $false) - } - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_StorageNodeToDisk", - $options - ) - - $enumerator = $results.GetEnumerator() - $instances = @() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - if ($instance.StorageNodeObjectId -ne $StorageNode.ObjectId) - { - continue - } - } - elseif ($PSBoundParameters.ContainsKey("Disk")) - { - if ($instance.DiskObjectId -ne $Disk.ObjectId) - { - continue - } - } - - $instances += $instance - } - - $instances - } -} - - -function Get-StorageEnclosureStorageNodeView -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageNode")] - [Parameter( - ValueFromPipeline = $true)] - $StorageNode, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageEnclosure")] - [Parameter( - ValueFromPipeline = $true)] - $StorageEnclosure, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the association objects - $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageNode", $false) - $options.SetCustomOption("InputObjectId", $StorageNode.ObjectId, $false) - } - elseif ($PSBoundParameters.ContainsKey("StorageEnclosure")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageEnclosure", $false) - $options.SetCustomOption("InputObjectId", $StorageEnclosure.ObjectId, $false) - } - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_StorageNodeToStorageEnclosure", - $options - ) - - $enumerator = $results.GetEnumerator() - $instances = @() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - - if ($PSBoundParameters.ContainsKey("StorageNode")) - { - if ($instance.StorageNodeObjectId -ne $StorageNode.ObjectId) - { - continue - } - } - elseif ($PSBoundParameters.ContainsKey("StorageEnclosure")) - { - if ($instance.StorageEnclosureObjectId -ne $StorageEnclosure.ObjectId) - { - continue - } - } - - $instances += $instance - } - - $instances - } -} - - -function Get-StorageHealthAction -{ - [CmdletBinding()] - Param - ( - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByUniqueId")] - $UniqueId, - - [CimInstance] - [Parameter( - Mandatory = $false, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{} - - Process - { - $info = $resources.info - $p = $null - $methodName = "GetActions" - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if ($UniqueId) - { - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $ns, $id) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - Get-CimInstance -CimSession $session -Query "Select * From MSFT_HealthAction Where UniqueId='$id'" -Namespace $ns - - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $StorageNamespace, $UniqueId) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $StorageNamespace $UniqueId - } - } - } - elseif ($InputObject.CimClass.CimClassName -eq "MSFT_HealthAction") - { - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $io | Get-CimInstance -CimSession $session - - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject - } - } - } - elseif (-not $InputObject -or ( $InputObject.CimClass.CimClassName -eq "MSFT_StorageHealth" )) - { - $className = "MSFT_HealthAction" - $block = { - param($session, $ns, $asjob, $cn) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - Get-CimInstance -CimSession $session -Namespace $ns -ClassName $cn - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $StorageNamespace, $p, $className) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $StorageNamespace $p $className - } - } - } - else - { - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $ns, $asjob, $mn, $io) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $r = Invoke-CimMethod -CimSession $session -InputObject $io -MethodName $mn -Confirm:$false - - for($i = 0; $i -lt $r.Count - 1; $i++) - { - $r[$i].ItemValue - } - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $StorageNamespace, $p, $methodName, $InputObject) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $StorageNamespace $p $methodName $InputObject - } - } - } - } -} - - -function Get-StorageFaultDomain -{ - [CmdletBinding( DefaultParameterSetName = "EnumerateFaultDomains" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomain, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk")] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDisk, - - #### ------------------------- Common parameters -----------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - $SerialNumber, - - [StorageFaultDomainType] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $Type, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalLocation, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - [flagsattribute()] - Enum StorageFaultDomainType - { - PhysicalDisk = 1 - StorageEnclosure = 2 - StorageScaleUnit = 3 - StorageChassis = 4 - StorageRack = 5 - StorageSite = 6 - } - - $className = "MSFT_StorageFaultDomain" - - switch ($Type) - { - PhysicalDisk { $className = "MSFT_PhysicalDisk" } - StorageEnclosure { $className = "MSFT_StorageEnclosure" } - StorageScaleUnit { $className = "MSFT_StorageScaleUnit" } - StorageChassis { $className = "MSFT_StorageChassis" } - StorageRack { $className = "MSFT_StorageRack" } - StorageSite { $className = "MSFT_StorageSite" } - } - } - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance objects. - - $options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions - - if ($PSBoundParameters.ContainsKey("Type")) - { - $options.SetCustomOption("ResultObject", $className, $false) - } - - switch ($psCmdlet.ParameterSetName) - { - "ByStorageSubsystem" - { - if (($className -eq "MSFT_PhysicalDisk") -and - ($StorageSubsystem.Model -like "*Windows Storage*")) - { - $options.SetCustomOption("InputClassName", "MSFT_StorageSubsystem", $false) - $options.SetCustomOption("InputObjectId", $StorageSubsystem.ObjectId, $false) - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options) - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StorageSubsystem, - "MSFT_StorageSubsystemToStorageFaultDomain", - $className, - "StorageSubSystem", - "StorageFaultDomain", - $options) - } - - break; - } - - "ByStorageFaultDomain" - { - $subsystem = $StorageFaultDomain | get-storagesubsystem -CimSession $CimSession - - if (($className -eq "MSFT_PhysicalDisk") -and - ($subsystem.Model -like "*Windows Storage*")) - { - $options.SetCustomOption("InputClassName", $StorageFaultDomain.ClassName, $false) - $options.SetCustomOption("InputObjectId", $StorageFaultDomain.ObjectId, $false) - - $results = $CimSession.EnumerateInstances($StorageNamespace, - "MSFT_PhysicalDisk", - $options) - } - else - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $StorageFaultDomain, - "MSFT_StorageFaultDomainToStorageFaultDomain", - $className, - "SourceStorageFaultDomain", - "TargetStorageFaultDomain", - $options) - } - - break; - } - - "ByVirtualDisk" - { - $results = $CimSession.EnumerateAssociatedInstances($StorageNamespace, - $VirtualDisk, - "MSFT_VirtualDiskToStorageFaultDomain", - "MSFT_StorageFaultDomain", - "VirtualDisk", - "StorageFaultDomain") - } - - "EnumerateFaultDomains" - { - $results = $CimSession.EnumerateInstances($StorageNamespace, - $className) - break; - } - } - - $enumerator = $results.GetEnumerator() - $instances = @() - - while ($enumerator.MoveNext()) - { - $instance = $enumerator.Current - - if (($PSBoundParameters.ContainsKey("FriendlyName")) -and - ($instance.FriendlyName -notlike $FriendlyName)) - { - continue - } - - if (($PSBoundParameters.ContainsKey("SerialNumber")) -and - ($instance.SerialNumber -notlike $SerialNumber)) - { - continue - } - - ## Filter by physical location if required and ensure - ## the formatting selected is for MSFT_StorageFaultDomain - - if (($PSBoundParameters.ContainsKey("PhysicalLocation")) -and - ($instance.PhysicalLocation -notlike $PhysicalLocation)) - { - continue - } - - $typename = $instance.PSObject.TypeNames.GetEnumerator() - $index = 0; - - while ($typename.MoveNext()) - { - if ($typename.Current.Equals("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageObject", - [System.StringComparison]::OrdinalIgnoreCase) -eq $true) - { - break - } - - $index++ - } - - $instance.PSObject.TypeNames.Insert($index + 1, "Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageFaultDomain") - $instances += $instance - } - - $instances - } -} - - -function Get-StorageScaleUnit -{ - [CmdletBinding( DefaultParameterSetName = "EnumerateFaultDomains" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomain, - - #### ------------------------- Common parameters -----------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $SerialNumber, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalLocation, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - } - - Process - { - $arguments = @{} - - $arguments.Add("Type", 'StorageScaleUnit') - - if ($PSBoundParameters.ContainsKey("FriendlyName")) - { - $arguments.Add("FriendlyName", $FriendlyName) - } - - if ($PSBoundParameters.ContainsKey("SerialNumber")) - { - $arguments.Add("SerialNumber", $SerialNumber) - } - - if ($PSBoundParameters.ContainsKey("PhysicalLocation")) - { - $arguments.Add("PhysicalLocation", $PhysicalLocation) - } - - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $arguments.Add("StorageSubsystem", $StorageSubsystem) - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomain")) - { - $arguments.Add("StorageFaultDomain", $StorageFaultDomain) - } - - if ($PSBoundParameters.ContainsKey("CimSession")) - { - $arguments.Add("CimSession", $CimSession) - } - - Get-StorageFaultDomain @arguments - } -} - - -function Get-StorageChassis -{ - [CmdletBinding( DefaultParameterSetName = "EnumerateFaultDomains" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomain, - - #### ------------------------- Common parameters -----------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $SerialNumber, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalLocation, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - } - - Process - { - $arguments = @{} - - $arguments.Add("Type", 'StorageChassis') - - if ($PSBoundParameters.ContainsKey("FriendlyName")) - { - $arguments.Add("FriendlyName", $FriendlyName) - } - - if ($PSBoundParameters.ContainsKey("SerialNumber")) - { - $arguments.Add("SerialNumber", $SerialNumber) - } - - if ($PSBoundParameters.ContainsKey("PhysicalLocation")) - { - $arguments.Add("PhysicalLocation", $PhysicalLocation) - } - - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $arguments.Add("StorageSubsystem", $StorageSubsystem) - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomain")) - { - $arguments.Add("StorageFaultDomain", $StorageFaultDomain) - } - - if ($PSBoundParameters.ContainsKey("CimSession")) - { - $arguments.Add("CimSession", $CimSession) - } - - Get-StorageFaultDomain @arguments - } -} - - -function Get-StorageRack -{ - [CmdletBinding( DefaultParameterSetName = "EnumerateFaultDomains" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomain, - - #### ------------------------- Common parameters -----------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $SerialNumber, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalLocation, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - } - - Process - { - $arguments = @{} - - $arguments.Add("Type", 'StorageRack') - - if ($PSBoundParameters.ContainsKey("FriendlyName")) - { - $arguments.Add("FriendlyName", $FriendlyName) - } - - if ($PSBoundParameters.ContainsKey("SerialNumber")) - { - $arguments.Add("SerialNumber", $SerialNumber) - } - - if ($PSBoundParameters.ContainsKey("PhysicalLocation")) - { - $arguments.Add("PhysicalLocation", $PhysicalLocation) - } - - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $arguments.Add("StorageSubsystem", $StorageSubsystem) - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomain")) - { - $arguments.Add("StorageFaultDomain", $StorageFaultDomain) - } - - if ($PSBoundParameters.ContainsKey("CimSession")) - { - $arguments.Add("CimSession", $CimSession) - } - - Get-StorageFaultDomain @arguments - } -} - - -function Get-StorageSite -{ - [CmdletBinding( DefaultParameterSetName = "EnumerateFaultDomains" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomain, - - #### ------------------------- Common parameters -----------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $FriendlyName, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - $SerialNumber, - - [System.String] - [Parameter( - ParameterSetName = 'EnumerateFaultDomains', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubsystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageFaultDomain', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalLocation, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Begin - { - } - - Process - { - $arguments = @{} - - $arguments.Add("Type", 'StorageSite') - - if ($PSBoundParameters.ContainsKey("FriendlyName")) - { - $arguments.Add("FriendlyName", $FriendlyName) - } - - if ($PSBoundParameters.ContainsKey("SerialNumber")) - { - $arguments.Add("SerialNumber", $SerialNumber) - } - - if ($PSBoundParameters.ContainsKey("PhysicalLocation")) - { - $arguments.Add("PhysicalLocation", $PhysicalLocation) - } - - if ($PSBoundParameters.ContainsKey("StorageSubsystem")) - { - $arguments.Add("StorageSubsystem", $StorageSubsystem) - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomain")) - { - $arguments.Add("StorageFaultDomain", $StorageFaultDomain) - } - - if ($PSBoundParameters.ContainsKey("CimSession")) - { - $arguments.Add("CimSession", $CimSession) - } - - Get-StorageFaultDomain @arguments - } -} - - -function ValidateFaultDomainsExist -{ - Param - ( - [String[]] - $StorageFaultDomainFriendlyNames, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem")] - $StorageSubsystem, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - [Microsoft.Management.Infrastructure.CimInstance[]] $faultdomains = @() - - $subsystemFDs = Get-CimAssociatedInstance -InputObject $StorageSubsystem ` - -Association MSFT_StorageSubsystemToStorageFaultDomain ` - -ResultClassName MSFT_StorageFaultDomain ` - -CimSession $CimSession ` - -ErrorAction Stop - - for ($i = 0; $i -lt $StorageFaultDomainFriendlyNames.Count; $i++) - { - $found = $false - - foreach ($fd in $subsystemFDs) - { - if ($fd.FriendlyName -eq $StorageFaultDomainFriendlyNames[$i]) - { - $faultdomains += $fd - $found = $true - break - } - } - - if ($found -eq $false) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Could not find storage fault domain with the friendly name '$($StorageFaultDomainFriendlyNames[$i])' in the storage subsystem" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - - $faultdomains = @() - break - } - } - - return $faultdomains -} - - -function Add-StorageFaultDomain -{ - [CmdletBinding()] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk")] - [Parameter( - ParameterSetName = "ByVirtualDisk", - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $VirtualDisk, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskFriendlyName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskName, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskUniqueId, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageTier")] - [Parameter( - ParameterSetName = "ByStorageTier", - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StorageTier, - - [String] - [Parameter( - ParameterSetName = "ByStorageTierFriendlyName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageTierFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByStorageTierUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageTierUniqueId, - - #### -------------------- Common method parameters ---------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTier', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomains, - - [String[]] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTier', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomainFriendlyNames, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByVirtualDisk" { $VirtualDiskInstance = $VirtualDisk; break; } - "ByVirtualDiskFriendlyName" { $VirtualDiskInstance = Get-VirtualDisk -FriendlyName $VirtualDiskFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByVirtualDiskName" { $VirtualDiskInstance = Get-VirtualDisk -Name $VirtualDiskName -CimSession $CimSession -ErrorAction Stop; break; } - "ByVirtualDiskUniqueId" { $VirtualDiskInstance = Get-VirtualDisk -UniqueId $VirtualDiskUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - - "ByStorageTier" { $StorageTierInstance = $StorageTier; break; } - "ByStorageTierFriendlyName" { $StorageTierInstance = Get-StorageTier -FriendlyName $StorageTierFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageTierUniqueId" { $StorageTierInstance = Get-StorageTier -UniqueId $StorageTierUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - } - - if (-not $AsJob) - { - Write-Progress -Activity "Add-StorageFaultDomain" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - - if ($VirtualDiskInstance) - { - $subsystem = $VirtualDiskInstance | get-storagesubsystem -CimSession $CimSession - } - elseif ($StorageTierInstance) - { - $subsystem = $StorageTierInstance | get-storagesubsystem -CimSession $CimSession - } - - ## Populate arguments list - - $arguments = @{} - - if ($PSBoundParameters.ContainsKey("StorageFaultDomains") -and - $PSBoundParameters.ContainsKey("StorageFaultDomainFriendlyNames")) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Use either 'StorageFaultDomains' or 'StorageFaultDomainFriendlyNames' parameter" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomains")) - { - $arguments.Add("StorageFaultDomains", $StorageFaultDomains) - } - elseif ($PSBoundParameters.ContainsKey("StorageFaultDomainFriendlyNames")) - { - [Microsoft.Management.Infrastructure.CimInstance[]] $faultdomains = @() - - $faultdomains = ValidateFaultDomainsExist -StorageFaultDomainFriendlyNames $StorageFaultDomainFriendlyNames ` - -StorageSubsystem $subsystem ` - -CimSession $CimSession - - if ($faultdomains.Count -eq 0) - { - return - } - - $arguments.Add("StorageFaultDomains", $faultdomains) - } - - # Would use a closure here, but jobs are run in their own session state. - $addfdblock = { - param($session, $asjob, $inputobject, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - $output = $null - - try - { - if (-not $asjob) - { - Write-Progress -Activity "Add-StorageFaultDomain" -PercentComplete 10 -CurrentOperation "Adding storage fault domains" -Status "1/2" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $inputobject -MethodName AddStorageFaultDomain -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - } - finally - { - if (-not $asjob) - { - Write-Progress -Activity "Add-StorageFaultDomain" -Completed -Status "2/2" - } - } - - if ($errorObject) - { - $psCmdlet.WriteError($errorObject) - } - else - { - $null - } - } - - if ($asjob) - { - $p = $true - - if ($VirtualDiskInstance) - { - Start-Job -Name AddStorageFaultDomain -ScriptBlock $addfdblock -ArgumentList @($CimSession, $p, $VirtualDiskInstance, $arguments) - } - elseif ($StorageTierInstance) - { - Start-Job -Name AddStorageFaultDomain -ScriptBlock $addfdblock -ArgumentList @($CimSession, $p, $StorageTierInstance, $arguments) - } - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - if ($VirtualDiskInstance) - { - &$addfdblock $CimSession $p $VirtualDiskInstance $arguments - } - elseif ($StorageTierInstance) - { - &$addfdblock $CimSession $p $StorageTierInstance $arguments - } - } - } - } -} - - -function Remove-StorageFaultDomain -{ - [CmdletBinding()] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk")] - [Parameter( - ParameterSetName = "ByVirtualDisk", - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $VirtualDisk, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskFriendlyName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskName, - - [String] - [Parameter( - ParameterSetName = "ByVirtualDiskUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $VirtualDiskUniqueId, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageTier")] - [Parameter( - ParameterSetName = "ByStorageTier", - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StorageTier, - - [String] - [Parameter( - ParameterSetName = "ByStorageTierFriendlyName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageTierFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByStorageTierUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageTierUniqueId, - - #### -------------------- Common method parameters ---------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTier', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomains, - - [String[]] - [Parameter( - ParameterSetName = 'ByVirtualDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByVirtualDiskUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTier', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageTierUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomainFriendlyNames, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByVirtualDisk" { $VirtualDiskInstance = $VirtualDisk; break; } - "ByVirtualDiskFriendlyName" { $VirtualDiskInstance = Get-VirtualDisk -FriendlyName $VirtualDiskFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByVirtualDiskName" { $VirtualDiskInstance = Get-VirtualDisk -Name $VirtualDiskName -CimSession $CimSession -ErrorAction Stop; break; } - "ByVirtualDiskUniqueId" { $VirtualDiskInstance = Get-VirtualDisk -UniqueId $VirtualDiskUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - - "ByStorageTier" { $StorageTierInstance = $StorageTier; break; } - "ByStorageTierFriendlyName" { $StorageTierInstance = Get-StorageTier -FriendlyName $StorageTierFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageTierUniqueId" { $StorageTierInstance = Get-StorageTier -UniqueId $StorageTierUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - } - - if (-not $AsJob) - { - Write-Progress -Activity "Remove-StorageFaultDomain" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - - if ($VirtualDiskInstance) - { - $subsystem = $VirtualDiskInstance | get-storagesubsystem -CimSession $CimSession - } - elseif ($StorageTierInstance) - { - $subsystem = $StorageTierInstance | get-storagesubsystem -CimSession $CimSession - } - - ## Populate arguments list - - $arguments = @{} - - if ($PSBoundParameters.ContainsKey("StorageFaultDomains") -and - $PSBoundParameters.ContainsKey("StorageFaultDomainFriendlyNames")) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Use either 'StorageFaultDomains' or 'StorageFaultDomainFriendlyNames' parameter" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomains")) - { - $arguments.Add("StorageFaultDomains", $StorageFaultDomains) - } - elseif ($PSBoundParameters.ContainsKey("StorageFaultDomainFriendlyNames")) - { - [Microsoft.Management.Infrastructure.CimInstance[]] $faultdomains = @() - - $faultdomains = ValidateFaultDomainsExist -StorageFaultDomainFriendlyNames $StorageFaultDomainFriendlyNames ` - -StorageSubsystem $subsystem ` - -CimSession $CimSession - - if ($faultdomains.Count -eq 0) - { - return - } - - $arguments.Add("StorageFaultDomains", $faultdomains) - } - - # Would use a closure here, but jobs are run in their own session state. - $removefdblock = { - param($session, $asjob, $inputobject, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - $output = $null - - try - { - if (-not $asjob) - { - Write-Progress -Activity "Remove-StorageFaultDomain" -PercentComplete 10 -CurrentOperation "Removing storage fault domains" -Status "1/2" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $inputobject -MethodName RemoveStorageFaultDomain -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - } - finally - { - if (-not $asjob) - { - Write-Progress -Activity "Remove-StorageFaultDomain" -Completed -Status "2/2" - } - } - - if ($errorObject) - { - $psCmdlet.WriteError($errorObject) - } - else - { - $null - } - } - - if ($asjob) - { - $p = $true - - if ($VirtualDiskInstance) - { - Start-Job -Name RemoveStorageFaultDomain -ScriptBlock $removefdblock -ArgumentList @($CimSession, $p, $VirtualDiskInstance, $arguments) - } - elseif ($StorageTierInstance) - { - Start-Job -Name RemoveStorageFaultDomain -ScriptBlock $removefdblock -ArgumentList @($CimSession, $p, $StorageTierInstance, $arguments) - } - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - if ($VirtualDiskInstance) - { - &$removefdblock $CimSession $p $VirtualDiskInstance $arguments - } - elseif ($StorageTierInstance) - { - &$removefdblock $CimSession $p $StorageTierInstance $arguments - } - } - } - } -} - - -function New-Volume -{ - [CmdletBinding( DefaultParameterSetName = "ByStoragePool" )] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StoragePool")] - [Parameter( - ParameterSetName = "ByStoragePool", - ValueFromPipeline = $true, - Mandatory = $false, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StoragePool, - - [String] - [Parameter( - ParameterSetName = "ByStoragePoolFriendlyName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StoragePoolFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByStoragePoolName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StoragePoolName, - - [String] - [Parameter( - ParameterSetName = "ByStoragePoolUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StoragePoolUniqueId, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_Disk")] - [Parameter( - ParameterSetName = "ByDisk", - ValueFromPipeline = $true, - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $Disk, - - [UInt32] - [Parameter( - ParameterSetName = "ByDiskNumber", - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $DiskNumber, - - [String] - [Parameter( - ParameterSetName = "ByDiskPath", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $DiskPath, - - [String] - [Parameter( - ParameterSetName = "ByDiskUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $DiskUniqueId, - - #### -------------------- Common method parameters ---------------------------#### - - [String] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByDisk', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByDiskNumber', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByDiskPath', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByDiskUniqueId', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $FriendlyName, - - [FileSystemType] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskPath', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $FileSystem, - - [String] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskPath', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $AccessPath, - - [Char] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskPath', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $DriveLetter, - - [UInt32] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDisk', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskNumber', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskPath', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByDiskUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $AllocationUnitSize, - - #### -------------------- Storage pool parameters ----------------------------#### - - [UInt64] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Size, - - [String] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $ResiliencySettingName, - - [ProvisioningType] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $ProvisioningType, - - [MediaType] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $MediaType, - - [UInt16] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - [Alias("FaultDomainRedundancy")] - $PhysicalDiskRedundancy, - - [UInt16] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $NumberOfDataCopies, - - [UInt16] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $NumberOfColumns, - - [UInt16] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $NumberOfGroups, - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomainsToUse, - - [String[]] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageFaultDomainsToUseFriendlyNames, - - [Microsoft.Management.Infrastructure.CimInstance[]] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageTier")] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageTiers, - - [String[]] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageTierFriendlyNames, - - [UInt64[]] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $StorageTierSizes, - - [UInt64] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $WriteCacheSize, - - [UInt64] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $ReadCacheSize, - - [Switch] - [Parameter( - ParameterSetName = 'ByStoragePool', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStoragePoolUniqueId', - Mandatory = $false)] - $UseMaximumSize = $false, - - #### -------------------- Disk parameters ------------------------------------#### - - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin - { - $SourceCaller = "Microsoft.PowerShell" - - [flagsattribute()] - Enum FileSystemType - { - NTFS = 14 - ReFS = 15 - CSVFS_NTFS = 32768 - CSVFS_ReFS = 32769 - } - - [flagsattribute()] - Enum ProvisioningType - { - Unknown = 0 - Thin = 1 - Fixed = 2 - } - - [flagsattribute()] - Enum MediaType - { - HDD = 3 - SSD = 4 - SCM = 5 - } - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByStoragePool" - { - if ($StoragePool -ne $null) - { - $PoolInstance = $StoragePool - } - else - { - # Also accept the existence of a single non-primordial pool as unambiguous - $PoolInstance = Get-StoragePool |? IsPrimordial -eq $false - if ($PoolInstance -eq $null -or $PoolInstance.Count -gt 1) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Storage pool must be specified by one of the 'StoragePool' parameters" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - } - - break - } - "ByStoragePoolFriendlyName" { $PoolInstance = Get-StoragePool -FriendlyName $StoragePoolFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStoragePoolName" { $PoolInstance = Get-StoragePool -Name $StoragePoolName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStoragePoolUniqueId" { $PoolInstance = Get-StoragePool -UniqueId $StoragePoolUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - - "ByDisk" { $DiskInstance = $Disk; break; } - "ByDiskNumber" { $DiskInstance = Get-Disk -Number $DiskNumber -CimSession $CimSession -ErrorAction Stop; break; } - "ByDiskPath" { $DiskInstance = Get-Disk -Path $DiskPath -CimSession $CimSession -ErrorAction Stop; break; } - "ByDiskUniqueId" { $DiskInstance = Get-Disk -UniqueId $DiskUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - } - - if (-not $AsJob) - { - if ($PoolInstance) - { - Write-Progress -Activity "New-Volume" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/3" - } - elseif ($DiskInstance) - { - Write-Progress -Activity "New-Volume" -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - } - - ## Populate arguments list - - $arguments = @{} - - if ($PSBoundParameters.ContainsKey("FriendlyName")) - { - $arguments.Add("FriendlyName", $FriendlyName) - } - - if ($PSBoundParameters.ContainsKey("FileSystem")) - { - $arguments.Add("FileSystem", [System.UInt16]$FileSystem) - } - - if ($PSBoundParameters.ContainsKey("AccessPath") -and - $PSBoundParameters.ContainsKey("DriveLetter")) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Use either 'AccessPath' or 'DriveLetter' parameter" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if ($PSBoundParameters.ContainsKey("AccessPath")) - { - $arguments.Add("AccessPath", $AccessPath) - } - elseif ($PSBoundParameters.ContainsKey("DriveLetter")) - { - $arguments.Add("AccessPath", $DriveLetter + ":") - } - - if ($PSBoundParameters.ContainsKey("AllocationUnitSize")) - { - $arguments.Add("AllocationUnitSize", $AllocationUnitSize) - } - - if ($PoolInstance) - { - if ($PSBoundParameters.ContainsKey("Size")) - { - $arguments.Add("Size", $Size) - } - - if ($PSBoundParameters.ContainsKey("ResiliencySettingName")) - { - $arguments.Add("ResiliencySettingName", $ResiliencySettingName) - } - - if ($PSBoundParameters.ContainsKey("ProvisioningType")) - { - $arguments.Add("ProvisioningType", [System.UInt16]$ProvisioningType) - } - - if ($PSBoundParameters.ContainsKey("MediaType")) - { - $arguments.Add("MediaType", [System.UInt16]$MediaType) - } - - if ($PSBoundParameters.ContainsKey("PhysicalDiskRedundancy")) - { - $arguments.Add("PhysicalDiskRedundancy", $PhysicalDiskRedundancy) - } - - if ($PSBoundParameters.ContainsKey("NumberOfDataCopies")) - { - $arguments.Add("NumberOfDataCopies", $NumberOfDataCopies) - } - - if ($PSBoundParameters.ContainsKey("NumberOfColumns")) - { - $arguments.Add("NumberOfColumns", $NumberOfColumns) - } - - if ($PSBoundParameters.ContainsKey("NumberOfGroups")) - { - $arguments.Add("NumberOfGroups", $NumberOfGroups) - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomainsToUse") -and - $PSBoundParameters.ContainsKey("StorageFaultDomainsToUseFriendlyNames")) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Use either 'StorageFaultDomainsToUse' or 'StorageFaultDomainsToUseFriendlyNames' parameter" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if ($PSBoundParameters.ContainsKey("StorageFaultDomainsToUse")) - { - $arguments.Add("StorageFaultDomainsToUse", $StorageFaultDomainsToUse) - } - elseif ($PSBoundParameters.ContainsKey("StorageFaultDomainsToUseFriendlyNames")) - { - [Microsoft.Management.Infrastructure.CimInstance[]] $faultdomains = @() - - $subsystem = $PoolInstance | get-storagesubsystem -CimSession $CimSession - - $faultdomains = ValidateFaultDomainsExist -StorageFaultDomainFriendlyNames $StorageFaultDomainsToUseFriendlyNames ` - -StorageSubsystem $subsystem ` - -CimSession $CimSession - - if ($faultdomains.Count -eq 0) - { - return - } - - $arguments.Add("StorageFaultDomainsToUse", $faultdomains) - } - - if ($PSBoundParameters.ContainsKey("StorageTiers") -and - $PSBoundParameters.ContainsKey("StorageTierFriendlyNames")) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Use either 'StorageTiers' or 'StorageTierFriendlyNames' parameter" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if ($PSBoundParameters.ContainsKey("StorageTiers")) - { - $arguments.Add("StorageTiers", $StorageTiers) - } - elseif ($PSBoundParameters.ContainsKey("StorageTierFriendlyNames")) - { - [Microsoft.Management.Infrastructure.CimInstance[]] $tiers = @() - - $poolTiers = Get-CimAssociatedInstance -InputObject $PoolInstance ` - -Association MSFT_StoragePoolToStorageTier ` - -ResultClassName MSFT_StorageTier ` - -CimSession $CimSession ` - -ErrorAction Stop - - for ($i = 0; $i -lt $StorageTierFriendlyNames.Count; $i++) - { - $found = $false - - foreach ($tier in $poolTiers) - { - if ($tier.FriendlyName -eq $StorageTierFriendlyNames[$i]) - { - $tiers += $tier - $found = $true - break - } - } - - if ($found -eq $false) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Could not find storage tier with the friendly name '$($StorageTierFriendlyNames[$i])' in the storage pool" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - } - - $arguments.Add("StorageTiers", $tiers) - } - - if ($PSBoundParameters.ContainsKey("StorageTierSizes")) - { - $arguments.Add("StorageTierSizes", $StorageTierSizes) - } - - if ($PSBoundParameters.ContainsKey("WriteCacheSize")) - { - $arguments.Add("WriteCacheSize", $WriteCacheSize) - } - - if ($PSBoundParameters.ContainsKey("ReadCacheSize")) - { - $arguments.Add("ReadCacheSize", $ReadCacheSize) - } - - if ($PSBoundParameters.ContainsKey("UseMaximumSize")) - { - $arguments.Add("UseMaximumSize", $UseMaximumSize.ToBool()) - } - } - - # Would use a closure here, but jobs are run in their own session state. - $poolblock = { - param($session, $asjob, $pool, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - $output = $null - $retry = 0 - $time = 1 - $virtualdisk = $null - $volume = $null - - $subsystem = $pool | get-storagesubsystem -CimSession $session - - # If the subsystem model is "Windows Storage", - # perform the individual steps - if ($subsystem.Model -like "*Windows Storage*") - { - $volCreateParams = @{} - - if ($arguments.ContainsKey("FriendlyName")) - { - $volCreateParams.Add("FriendlyName", $arguments["FriendlyName"]) - } - - if ($arguments.ContainsKey("FileSystem")) - { - $volCreateParams.Add("FileSystem", $arguments["FileSystem"]) - $arguments.Remove("FileSystem") - } - elseif ($subsystem.Model -eq "Clustered Windows Storage" -and - $subsystem.StorageConnectionType -eq "Local Storage" -and - $subsystem.SupportedFileSystems -contains [FilesystemType]::CSVFS_ReFS) - { - # If the subsystem is clustered local (storage spaces direct) and supports it, - # default to CSVFS + ReFS. - $volCreateParams.Add("FileSystem", [System.Uint16][FilesystemType]::CSVFS_ReFS) - } - - if ($arguments.ContainsKey("AccessPath")) - { - $volCreateParams.Add("AccessPath", $arguments["AccessPath"]) - $arguments.Remove("AccessPath") - } - - if ($arguments.ContainsKey("AllocationUnitSize")) - { - $volCreateParams.Add("AllocationUnitSize", $arguments["AllocationUnitSize"]) - $arguments.Remove("AllocationUnitSize") - } - - try - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -PercentComplete 10 -CurrentOperation "Creating virtual disk" -Status "1/3" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $pool -MethodName CreateVirtualDisk -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - - $virtualdisk = $output.CreatedVirtualDisk - - do - { - $disk = $output.CreatedVirtualDisk | get-disk -CimSession $session - - if ($disk -or ($retry -ge 3)) - { - break - } - - Start-Sleep -Seconds $time - - $retry++ - $time = $time * 2 - } - while ($disk -eq $null) - - if ($disk -eq $null) - { - $errorObject = CreateErrorRecord -ErrorId "ObjectNotFound" ` - -ErrorMessage "The disk associated with the virtual disk created could not be found." ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -PercentComplete 70 -CurrentOperation "Creating volume" -Status "2/3" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $disk -MethodName CreateVolume -Arguments $volCreateParams -ErrorAction Stop - - $progressPreference = "Continue" - - $volume = $output.CreatedVolume - } - catch - { - $progressPreference = "Continue" - - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -PercentComplete 90 -CurrentOperation "Error encountered. Checking if cleanup is required." -Status "2/3" - } - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - # If virtual disk was created and volume was formatted, but - # adding to cluster failed or the cluster resource did not - # come online after successful addition, do not revert. - - if (($virtualdisk) -and - ($_.FullyQualifiedErrorId -notmatch "46008") -and - ($_.FullyQualifiedErrorId -notmatch "46011")) - { - $progressPreference = "silentlyContinue" - - $virtualdisk | Remove-VirtualDisk -CimSession $session -Confirm:$false - - $progressPreference = "Continue" - } - } - finally - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -Completed -Status "3/3" - } - } - } - # Else fallback to the API on the storage pool - else - { - try - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -PercentComplete 10 -CurrentOperation "Creating volume" -Status "1/2" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $pool -MethodName CreateVolume -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - - $volume = $output.CreatedVolume - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - } - finally - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -Completed -Status "2/2" - } - } - } - - if ($errorObject) - { - $psCmdlet.WriteError($errorObject) - } - else - { - $volume - } - } - - # Would use a closure here, but jobs are run in their own session state. - $diskblock = { - param($session, $asjob, $disk, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $errorObject = $null - $output = $null - $volume = $null - - try - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -PercentComplete 10 -CurrentOperation "Creating volume" -Status "1/2" - } - - $progressPreference = "silentlyContinue" - - $output = Invoke-CimMethod -CimSession $session -InputObject $disk -MethodName CreateVolume -Arguments $arguments -ErrorAction Stop - - $progressPreference = "Continue" - - $volume = $output.CreatedVolume - } - catch - { - $progressPreference = "Continue" - - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - } - finally - { - if (-not $asjob) - { - Write-Progress -Activity "New-Volume" -Completed -Status "3/3" - } - } - - if ($errorObject) - { - $psCmdlet.WriteError($errorObject) - } - else - { - $volume - } - } - - if ($asjob) - { - $p = $true - - if ($PoolInstance) - { - Start-Job -Name CreateVolume -ScriptBlock $poolblock -ArgumentList @($CimSession, $p, $PoolInstance, $arguments) - } - elseif ($DiskInstance) - { - Start-Job -Name CreateVolume -ScriptBlock $diskblock -ArgumentList @($CimSession, $p, $DiskInstance, $arguments) - } - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - if ($PoolInstance) - { - &$poolblock $CimSession $p $PoolInstance $arguments - } - elseif ($DiskInstance) - { - &$diskblock $CimSession $p $DiskInstance $arguments - } - } - } - } -} - - -function Get-StorageExtendedStatus -{ - [CmdletBinding()] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageJob")] - [Parameter( - ParameterSetName = 'ByStorageJob', - Mandatory = $true, - ValueFromPipeline = $true)] - [ValidateNotNullOrEmpty()] - $StorageJob, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession - ) - - Process - { - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - ## Gather the instance objects - - switch ($psCmdlet.ParameterSetName) - { - "ByStorageJob" { $inputObject = $StorageJob; break; } - } - - $extendedStatus = $null - - try - { - $output = Invoke-CimMethod -MethodName "GetExtendedStatus" -InputObject $inputObject -CimSession $CimSession -ErrorAction Stop - $extendedStatus = $output.ExtendedStatus - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - - $psCmdlet.WriteError($errorObject) - } - - $extendedStatus - } -} - -function Get-StorageAdvancedProperty -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - Mandatory = $true, - ValueFromPipeline = $true)] - $PhysicalDisk - ) - - Process - { - if ( $PhysicalDisk ) { - - $isDeviceCacheEnabled = $null - $isPowerProtected = $null - - $deviceCacheOutput = Invoke-CimMethod -MethodName IsDeviceCacheEnabled -InputObject $PhysicalDisk -ErrorAction SilentlyContinue - $powerProtectedOutput = Invoke-CimMethod -MethodName IsPowerProtected -InputObject $PhysicalDisk -ErrorAction SilentlyContinue - - # DeviceCache error handling - if ( $deviceCacheOutput -and $deviceCacheOutput.ReturnValue -ne 0 ) { - - Write-Warning "Retrieving IsDeviceCacheEnabled failed with ErrorCode $( $deviceCacheOutput.ReturnValue )." - } - else { - $isDeviceCacheEnabled = $deviceCacheOutput.IsDeviceCacheEnabled - } - - # PowerProtected error handling - if ( $powerProtectedOutput -and $powerProtectedOutput.ReturnValue -ne 0 ) { - - Write-Warning "Retrieving IsPowerProtected failed with ErrorCode $( $powerProtectedOutput.ReturnValue )." - } - else { - $isPowerProtected = $powerProtectedOutput.IsPowerProtected - } - - $customDrive = [pscustomobject]@{ - PhysicalDisk = $PhysicalDisk; - IsPowerProtected = $isPowerProtected; - IsDeviceCacheEnabled = $isDeviceCacheEnabled; - } - - $customDrive.PSObject.TypeNames.Insert( 0, "Microsoft.Windows.StorageManagement.PhysicalDiskAdvancedProperties" ) - - $customDrive - } - } -} - -function Get-StorageHealthReport -{ - [CmdletBinding()] - Param - ( - [CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageObject")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Int32] - $Count = 1, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{ - Write-Warning "This cmdlet is deprecated and may not be available in the future. Use Get-ClusterPerformanceHistory instead." - } - - Process - { - $info = $resources.info - $p = $null - $methodName = "GetReport" - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if ($InputObject.CimClass.CimClassName -ne "MSFT_StoragesubSystem" -and - $InputObject.CimClass.CimClassName -ne "MSFT_StorageNode" -and - $InputObject.CimClass.CimClassName -ne "MSFT_Volume" -and - $InputObject.CimClass.CimClassName -ne "MSFT_FileShare") - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "The input object must be a StorageSubSystem, StorageNode, Volume or FileShare" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - if($InputObject.CimSystemProperties.ClassName.Equals("MSFT_FileShare")) - { - $InputObject = $InputObject | Get-Volume -CimSession $CimSession -ErrorAction Stop - } - - $storageSubSystem = $InputObject | Get-StorageSubSystem -CimSession $CimSession -ErrorAction Stop - - $StorageHealth = Get-CimAssociatedInstance -ResultClassName MSFT_StorageHealth -InputObject $storageSubSystem -CimSession $CimSession -ErrorAction Stop - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $ns, $asjob, $mn, $sh, $io, $co) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - Invoke-CimMethod -CimSession $session -InputObject $sh -MethodName $mn -Arguments @{TargetObject=$io;Count=[uint32]$co} -Confirm:$false - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $StorageNamespace, $p, $methodName, $StorageHealth, $InputObject, $Count) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $StorageNamespace $p $methodName $StorageHealth $InputObject $Count - } - } - } -} - -function Get-StorageHealthSetting -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubSystem")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [String] - $Name, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{} - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - $StorageHealth = $InputObject | Get-StorageHealth -CimSession $CimSession -ErrorAction Stop - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $sh, $na) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - # We need to load the module or it fails with CMDLET Not Found - import-module Storage\StorageHealth.cdxml - $session = $session | New-CimSession - } - - $sh | Get-StorageHealthSettingInternal -Name $na -CimSession $session - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $StorageHealth, $Name) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $StorageHealth $Name - } - } - } -} - -function Set-StorageHealthSetting -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubSystem")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [String] - [Parameter( - Mandatory = $true)] - $Name, - - [String] - [Parameter( - Mandatory = $true)] - $Value, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{} - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - $StorageHealth = $InputObject | Get-StorageHealth -CimSession $CimSession -ErrorAction Stop - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $sh, $na, $va) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - # We need to load the module or it fails with CMDLET Not Found - import-module Storage\StorageHealth.cdxml - $session = $session | New-CimSession - } - - $sh | Set-StorageHealthSettingInternal -Name $na -Value $va -CimSession $session - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $StorageHealth, $Name, $Value) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $StorageHealth $Name $Value - } - } - } -} - -function Remove-StorageHealthSetting -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubSystem")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [String] - [Parameter( - Mandatory = $true)] - $Name, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{} - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - $StorageHealth = $InputObject | Get-StorageHealth -CimSession $CimSession -ErrorAction Stop - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $sh, $na) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - import-module Storage\StorageHealth.cdxml - $session = $session | New-CimSession - } - - $sh | Remove-StorageHealthSettingInternal -Name $na -CimSession $session - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $StorageHealth, $Name) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $StorageHealth $Name - } - } - } -} - -function Debug-StorageSubSystem -{ - [CmdletBinding( DefaultParameterSetName="ByFriendlyName" )] - Param - ( - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByFriendlyName", - Position = 0)] - $StorageSubSystemFriendlyName, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByUniqueId")] - $StorageSubSystemUniqueId, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByName")] - $StorageSubSystemName, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubSystem")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{ - Write-Warning "This cmdlet is deprecated and may not be available in the future. Use Get-HealthFault instead." - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - switch ($PsCmdlet.ParameterSetName) - { - "ByName" { $InputObject = Get-StorageSubSystem -Name $StorageSubSystemName -CimSession $CimSession; break; } - "ByUniqueId" { $InputObject = Get-StorageSubSystem -UniqueId $StorageSubSystemUniqueId -CimSession $CimSession; break; } - "ByFriendlyName" { $InputObject = Get-StorageSubSystem -FriendlyName $StorageSubSystemFriendlyName -CimSession $CimSession; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $result = @() - $output = Invoke-CimMethod -MethodName Diagnose -InputObject $io -CimSession $session - foreach($i in $output){$result += $i.ItemValue} - $result | Sort-Object -Property PerceivedSeverity - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject - } - } - } -} - -function Debug-FileShare -{ - [CmdletBinding( DefaultParameterSetName="ByName" )] - Param - ( - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByName", - Position = 0 )] - $Name, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByUniqueId")] - $UniqueId, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_FileShare")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{ - Write-Warning "This cmdlet is deprecated and may not be available in the future. Use Get-HealthFault instead." - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - switch ($PsCmdlet.ParameterSetName) - { - "ByName" { $InputObject = Get-FileShare -Name $Name -CimSession $CimSession -ErrorAction stop; break; } - "ByUniqueId" { $InputObject = Get-FileShare -UniqueId $UniqueId -CimSession $CimSession -ErrorAction stop; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $result = @() - $output = Invoke-CimMethod -MethodName Diagnose -InputObject $io -CimSession $session - foreach($i in $output){$result += $i.ItemValue} - $result | Sort-Object -Property PerceivedSeverity - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject - } - } - } -} - -function Debug-Volume -{ - [CmdletBinding( DefaultParameterSetName="ByDriveLetter" )] - Param - ( - [char[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByDriveLetter", - Position = 0)] - $DriveLetter, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ById")] - $ObjectId, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByPaths")] - $Path, - - [string[]] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "ByLabel")] - [Alias("FriendlyName")] - $FileSystemLabel, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_Volume")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Begin{ - Write-Warning "This cmdlet is deprecated and may not be available in the future. Use Get-HealthFault instead." - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - switch ($PsCmdlet.ParameterSetName) - { - "ByDriveLetter" { $io = Get-Volume -CimSession $CimSession -DriveLetter $DriveLetter -ErrorAction stop; break;} - "ById" { $io = Get-Volume -CimSession $CimSession -ObjectId $ObjectId -ErrorAction stop; break; } - "ByPaths" { $io = Get-Volume -CimSession $CimSession -Path $Path -ErrorAction stop; break;} - "ByLabel" { $io = Get-Volume -CimSession $CimSession -FileSystemLabel $FileSystemLabel -ErrorAction stop; break;} - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - $result = @() - $output = Invoke-CimMethod -MethodName Diagnose -InputObject $io -CimSession $session - foreach($i in $output){$result += $i.ItemValue} - $result | Sort-Object -Property PerceivedSeverity - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject - } - } - } -} - -function Enable-StorageMaintenanceMode -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Switch] - $IgnoreDetachedVirtualDisks, - - [System.Nullable[Bool]] - $ValidateVirtualDisksHealthy, - - [String] - $Model, - - [String] - $Manufacturer, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - [System.Nullable[Bool]] - $ValidateMaintenanceMode, - - [Switch] - $AsJob - ) - - Begin - { - [flagsattribute()] - Enum ValidationFlags - { - None = 0 - VirtualDisksHealthy = 1 - } - } - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if ($InputObject.CimClass.CimClassName -ne "MSFT_PhysicalDisk" -and - $InputObject.CimClass.CimClassName -ne "MSFT_StorageEnclosure" -and - $InputObject.CimClass.CimClassName -ne "MSFT_StorageScaleUnit") - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "The input object must be a PhysicalDisk, StorageEnclosure or StorageScaleUnit" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $arguments = @{} - - $arguments.Add("EnableMaintenanceMode", $true) - $arguments.Add("IgnoreDetachedVirtualDisks", $IgnoreDetachedVirtualDisks.IsPresent) - if ($InputObject.CimClass.CimClassName -ne "MSFT_PhysicalDisk") - { - if ($PSBoundParameters.ContainsKey("Model")) - { - $arguments.Add("Model", $Model) - } - - if ($PSBoundParameters.ContainsKey("Manufacturer")) - { - $arguments.Add("Manufacturer", $Manufacturer) - } - } - - $includeValidationFlags = $false - if ($ValidateVirtualDisksHealthy -ne $null) - { - $includeValidationFlags = $true - if($ValidateVirtualDisksHealthy) - { - $validationFlags += [ValidationFlags]::VirtualDisksHealthy - } - else - { - $validationFlags += [ValidationFlags]::None - } - } - - if ($includeValidationFlags) - { - $arguments.Add("ValidationFlags", $validationFlags) - } - - if ($ValidateMaintenanceMode -ne $null) - { - $arguments.Add("ValidateMaintenanceMode", $ValidateMaintenanceMode) - } - - $storageSubSystem = $InputObject | Get-StorageSubSystem -CimSession $CimSession - - if ($storageSubSystem.Model -eq "Clustered Windows Storage") - { - $storageHealth = Get-CimAssociatedInstance -ResultClassName MSFT_StorageHealth -InputObject $storageSubSystem -CimSession $CimSession - - $arguments.Add("TargetObject", $InputObject) - } - else - { - if ($arguments["ValidationFlags"] -ne $null) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "The parameter 'ValidateVirtualDisksHealthy' is not supported in this subsystem. Invoke again without this parameter." ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io, $arg, $ss, $sh) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - if ($ss.Model -eq "Clustered Windows Storage") - { - Invoke-CimMethod -MethodName "Maintenance" -Arguments $arg -InputObject $sh -CimSession $session | Out-Null - } - else - { - Invoke-CimMethod -MethodName "Maintenance" -Arguments $arg -InputObject $io -CimSession $session | Out-Null - } - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject, $arguments, $storageSubSystem, $storageHealth) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject $arguments $storageSubSystem $storageHealth - } - } - } -} - -function Disable-StorageMaintenanceMode -{ - [CmdletBinding()] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageFaultDomain")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [string] - $Model, - - [string] - $Manufacturer, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - [Switch] - $AsJob - ) - - Begin{} - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if ($InputObject.CimClass.CimClassName -ne "MSFT_PhysicalDisk" -and - $InputObject.CimClass.CimClassName -ne "MSFT_StorageEnclosure" -and - $InputObject.CimClass.CimClassName -ne "MSFT_StorageScaleUnit") - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "The input object must be a PhysicalDisk, StorageEnclosure or StorageScaleUnit" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $arguments = @{} - - $arguments.Add("EnableMaintenanceMode", $false) - - if($InputObject.CimClass.CimClassName -ne "MSFT_PhysicalDisk") - { - if ($PSBoundParameters.ContainsKey("Model")) - { - $arguments.Add("Model", $Model) - } - - if ($PSBoundParameters.ContainsKey("Manufacturer")) - { - $arguments.Add("Manufacturer", $Manufacturer) - } - } - - $storageSubSystem = $InputObject | Get-StorageSubSystem -CimSession $CimSession - - if ($storageSubSystem.Model -eq "Clustered Windows Storage") - { - $arguments.Add("TargetObject", $InputObject) - - $storageHealth = Get-CimAssociatedInstance -ResultClassName MSFT_StorageHealth -InputObject $storageSubSystem -CimSession $CimSession - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io, $arg, $ss, $sh) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession - } - - if ($ss.Model -eq "Clustered Windows Storage") - { - Invoke-CimMethod -MethodName "Maintenance" -Arguments $arg -InputObject $sh -CimSession $session | Out-Null - } - else - { - Invoke-CimMethod -MethodName "Maintenance" -Arguments $arg -InputObject $io -CimSession $session | Out-Null - } - } - - if ($asjob) - { - $p = $true - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $p, $InputObject, $arguments, $storageSubSystem, $storageHealth) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $p $InputObject $arguments $storageSubSystem $storageHealth - } - } - } -} - - -function Get-StorageDiagnosticInfo -{ - [CmdletBinding()] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubSystem")] - [Parameter( - ParameterSetName = "ByStorageSubSystem", - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $InputObject, - - [String] - [Parameter( - ParameterSetName = "ByStorageSubSystemFriendlyName", - Mandatory = $true, - Position = 0)] - [ValidateNotNullOrEmpty()] - $StorageSubSystemFriendlyName, - - [String] - [Parameter( - ParameterSetName = "ByStorageSubSystemName", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $StorageSubSystemName, - - [String] - [Parameter( - ParameterSetName = "ByStorageSubSystemUniqueId", - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("StorageSubSystemId")] - $StorageSubSystemUniqueId, - - #### -------------------- Method parameters ----------------------------------#### - - [String] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $true)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Path")] - $DestinationPath, - - [UInt32] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $false)] - $TimeSpan, - - [String] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $false)] - $ActivityId, - - [System.Management.Automation.SwitchParameter] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $false)] - $ExcludeOperationalLog = $false, - - [System.Management.Automation.SwitchParameter] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $false)] - $ExcludeDiagnosticLog = $false, - - [System.Management.Automation.SwitchParameter] - [Parameter( - ParameterSetName = 'ByStorageSubSystem', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemFriendlyName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemName', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByStorageSubSystemUniqueId', - Mandatory = $false)] - $IncludeLiveDump = $false, - - #### -------------------- Powershell parameters ------------------------------#### - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - # Provided for compatibility with CDXML cmdlets, not actually used. - [Int32] - $ThrottleLimit, - - [Switch] - $AsJob - ) - - Process - { - $info = $resources.info - $p = $null - - if (-not $CimSession) - { - $CimSession = New-CimSession - } - - if (-not $AsJob) - { - Write-Progress -Activity "Get-StorageDiagnosticInfo" -Id 0 -PercentComplete 0 -CurrentOperation "Validating parameters" -Status "0/2" - } - - ## Gather the instance object - - switch ($psCmdlet.ParameterSetName) - { - "ByStorageSubSystem" { $SubsystemInstance = $InputObject; break; } - "ByStorageSubSystemFriendlyName" { $SubsystemInstance = Get-StorageSubsystem -FriendlyName $StorageSubSystemFriendlyName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageSubSystemName" { $SubsystemInstance = Get-StorageSubsystem -Name $StorageSubSystemName -CimSession $CimSession -ErrorAction Stop; break; } - "ByStorageSubSystemUniqueId" { $SubsystemInstance = Get-StorageSubsystem -UniqueId $StorageSubSystemUniqueId -CimSession $CimSession -ErrorAction Stop; break; } - } - - # Would use a closure here, but jobs are run in their own session state. - $methodblock = { - param($session, $asjob, $uniqueId, $arguments) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - # We need to load the module or it fails with CMDLET Not Found - import-module Storage\StorageSubSystem.cdxml - - $session = $session | New-CimSession - } - - $parameters = @{} - - $parameters.Add("CimSession", $session ) - $parameters.Add("StorageSubSystemUniqueId", $uniqueId ) - $parameters.Add("DestinationPath", $arguments["DestinationPath"] ) - - if ($arguments.ContainsKey("TimeSpan")) - { - $parameters.Add("TimeSpan", $arguments["TimeSpan"]) - } - - if ($arguments.ContainsKey("ActivityId")) - { - $parameters.Add("ActivityId", $arguments["ActivityId"]) - } - - if ($arguments.ContainsKey("ExcludeOperationalLog")) - { - $parameters.Add("ExcludeOperationalLog", $arguments["ExcludeOperationalLog"]) - } - - if ($arguments.ContainsKey("ExcludeDiagnosticLog")) - { - $parameters.Add("ExcludeDiagnosticLog", $arguments["ExcludeDiagnosticLog"]) - } - - if ($arguments.ContainsKey("IncludeLiveDump")) - { - $parameters.Add("IncludeLiveDump", $arguments["IncludeLiveDump"]) - } - - if (-not $asjob) - { - Write-Progress -Activity "Get-StorageDiagnosticInfo" -Id 0 -PercentComplete 10 -CurrentOperation "Gathering storage diagnostic logs" -Status "1/2" - } - - Get-StorageDiagnosticInfoInternal @parameters - - if (-not $asjob) - { - Write-Progress -Activity "Get-StorageDiagnosticInfo" -Completed -Status "2/2" - } - } - - if ($asjob) - { - $p = $true - - Start-Job -Name GetDiagnosticInfo ` - -ScriptBlock $methodblock ` - -ArgumentList @($CimSession, $p, $SubsystemInstance.UniqueId, $PSBoundParameters) - } - else - { - &$methodblock $CimSession $p $SubsystemInstance.UniqueId $PSBoundParameters - } - } -} - -function Remove-StorageHealthIntent -{ - [CmdletBinding( - SupportsShouldProcess=$true, - ConfirmImpact="High" - )] - Param - ( - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageObject")] - [Parameter( - Mandatory = $true, - ValueFromPipeline = $true, - ParameterSetName = "InputObject")] - $InputObject, - - [Microsoft.Management.Infrastructure.CimSession] - $CimSession, - - [Switch] - $AsJob - ) - - Process - { - $info = $resources.info - - if (-not $CimSession) - { - $CimSession = New-CimSession -Verbose:$false - } - - $arguments = @{} - - $storageSubSystem = $InputObject | Get-StorageSubSystem -CimSession $CimSession - - if ($storageSubSystem.Model -eq "Clustered Windows Storage") - { - $storageHealth = Get-CimAssociatedInstance -ResultClassName MSFT_StorageHealth -InputObject $storageSubSystem -CimSession $CimSession - - $arguments.Add("TargetObject", $InputObject) - } - else - { - $errorObject = CreateErrorRecord -ErrorId "InvalidSubsystem" ` - -ErrorMessage "This method is not supported for this subsystem." ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # Would use a closure here, but jobs are run in their own session state. - $block = { - param($session, $asjob, $io, $arg, $sh) - - # Start-Job serializes/deserializes the CimSession, - # which means it shows up here as having type Deserialized.CimSession. - # Must recreate or cast the object in order to pass it to Get-CimInstance. - if ($asjob) - { - $session = $session | New-CimSession -Verbose:$false - } - - Invoke-CimMethod -MethodName "RemoveIntent" -Arguments $arg -InputObject $sh -CimSession $session | Out-Null - } - - if ($asjob) - { - Start-Job -ScriptBlock $block -ArgumentList @($CimSession, $true, $InputObject, $arguments, $storageHealth) - } - else - { - if ($pscmdlet.ShouldProcess($info, $resources.warning, $info)) - { - &$block $CimSession $false $InputObject $arguments $storageHealth - } - } - } -} - -New-Alias Get-PhysicalDiskSNV Get-PhysicalDiskStorageNodeView -New-Alias Get-DiskSNV Get-DiskStorageNodeView -New-Alias Get-StorageEnclosureSNV Get-StorageEnclosureStorageNodeView - -Export-ModuleMember -Alias * -Function * \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageSetting.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageSetting.cdxml deleted file mode 100644 index f116db9..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageSetting.cdxml +++ /dev/null @@ -1,82 +0,0 @@ - - - 1.0.0.0 - StorageSetting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageSubSystem.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageSubSystem.cdxml deleted file mode 100644 index 5a8bb11..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageSubSystem.cdxml +++ /dev/null @@ -1,928 +0,0 @@ - - - 1.0.0.0 - StorageSubSystem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/StorageTier.cdxml b/newton-cn/bin/v1.0/Modules/Storage/StorageTier.cdxml deleted file mode 100644 index 018e31a..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/StorageTier.cdxml +++ /dev/null @@ -1,206 +0,0 @@ - - - 1.0.0.0 - StorageTier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/TargetPort.cdxml b/newton-cn/bin/v1.0/Modules/Storage/TargetPort.cdxml deleted file mode 100644 index e210e7a..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/TargetPort.cdxml +++ /dev/null @@ -1,167 +0,0 @@ - - - 1.0.0.0 - TargetPort - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/TargetPortal.cdxml b/newton-cn/bin/v1.0/Modules/Storage/TargetPortal.cdxml deleted file mode 100644 index 48d949e..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/TargetPortal.cdxml +++ /dev/null @@ -1,65 +0,0 @@ - - - 1.0.0.0 - TargetPortal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/Storage/VirtualDisk.cdxml b/newton-cn/bin/v1.0/Modules/Storage/VirtualDisk.cdxml deleted file mode 100644 index 91815d7..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/VirtualDisk.cdxml +++ /dev/null @@ -1,765 +0,0 @@ - - - 1.0.0.0 - VirtualDisk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Storage/Volume.cdxml b/newton-cn/bin/v1.0/Modules/Storage/Volume.cdxml deleted file mode 100644 index 0c49972..0000000 --- a/newton-cn/bin/v1.0/Modules/Storage/Volume.cdxml +++ /dev/null @@ -1,856 +0,0 @@ - - - 1.0.0.0 - Volume - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FAT - FAT32 - exFAT - NTFS - ReFS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.format.ps1xml b/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.format.ps1xml deleted file mode 100644 index 75d7910..0000000 --- a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.format.ps1xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - DiskTableView - - StorageBusDisk - - - - - - - - - - - - - - - - - - - - - Guid - - - Number - - - IsCache - - - BusType - - - - - - - - DiskListView - - StorageBusDisk - - - - - - - Guid - - - Number - - - IsCache - - - BusType - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psd1 b/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psd1 deleted file mode 100644 index 5795d24..0000000 --- a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psd1 +++ /dev/null @@ -1,31 +0,0 @@ -@{ - GUID = 'c85588a4-1180-4635-ba9e-a04581bf10c8' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0.0.0' - PowerShellVersion = '3.0' - FormatsToProcess = 'StorageBusCache.format.ps1xml' - TypesToProcess = 'StorageBusCache.types.ps1xml' - NestedModules = @( - 'StorageBusCache.psm1' - ) - - CmdletsToExport = @() - FunctionsToExport = @( - 'Clear-StorageBusDisk', - 'Disable-StorageBusCache', - 'Disable-StorageBusDisk', - 'Enable-StorageBusCache', - 'Enable-StorageBusDisk', - 'Get-StorageBusDisk', - 'Get-StorageBusBinding', - 'New-StorageBusCacheStore', - 'New-StorageBusBinding', - 'Remove-StorageBusBinding', - 'Resume-StorageBusDisk', - 'Set-StorageBusProfile', - 'Suspend-StorageBusDisk') -} - - diff --git a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psm1 b/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psm1 deleted file mode 100644 index 5aebee0..0000000 --- a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.psm1 +++ /dev/null @@ -1,2452 +0,0 @@ -$DiskControls = @" -using System; -using System.Collections; -using System.Runtime.InteropServices; -using System.ComponentModel; - -namespace Microsoft.SFS.StorageBusCache -{ - public enum StorageBusType - { - Unknown = 0, - Scsi = 1, - Atapi = 2, - Ata = 3, - IEEE1394 = 4, - Ssa = 5, - Fibre = 6, - Usb = 7, - RAID = 8, - iScsi = 9, - Sas = 10, - Sata = 11, - Sd = 12, - Mmc = 13, - Virtual = 14, - FileBackedVirtual = 15, - Spaces = 16, - Nvme = 17, - SCM = 18, - Ufs = 19, - Max = 20 - } - - namespace ClusBFlt - { - public enum DeviceType - { - Disk = 0, - Enclosure = 1, - SSU = 2 - } - - [Flags] - public enum CacheStoreBindingAttribute - { - Default = 0x00000000, - Enabled = 0x00000001, - Disable_Read_Cache = 0x00000002, - Disable_Read_Ahead_Cache = 0x00000004, - Disable_Write_Cache = 0x00000008 - } - - public enum PathType - { - Read_Write = 0, - Read_Only = 1, - Engaged = 2, - Maintenance = 3 - } - - [Flags] - public enum PathInfoAttribute - { - Default = 0x00000000, - Virtual = 0x00000001, - Orphan = 0x00000002, - Hybrid = 0x00000004, - Solid = 0x00000008, - Incomplete = 0x00000010, - Fairness_Layer = 0x00000020, - Missing_Layer = 0x00000040, - Hidden = 0x00000080, - Resilient = 0x00000100, - Paused = 0x00000200, - Block_RW = 0x00000400, - Attention = 0x00000800, - Has_Cache_Partition = 0x00001000, - Fairness_Enabled = 0x00002000, - Partition = 0x00004000, - Block_Write = 0x00008000, - All = 0x0000FFFF - } - - [Flags] - public enum DiskAttribute - { - Default = 0x00, - Enabled = 0x01, - Disabled = 0x02, - Maintenance = 0x04, - No_Virtual_Enclosure = 0x08, - Block_ReadWrite = 0x10, - Block_Write = 0x20, - All = 0xFF - } - - [Flags] - public enum SystemFlags - { - Default_System = 0x0000, - Azure_System = 0x0001, - Dont_Set_FastFail = 0x0010, - Allow_Other_Partitions = 0x0020, - Claim_Sbl_Cache_HDD_Guid_Disk = 0x0040, - Claim_Sbl_Cache_SSD_Guid_Part = 0x0080, - Dont_Claim_SSD = 0x0100, - Create_Bus_PDO = 0x0200, - Disable_Cache_On_Error = 0x0400 - } - } - - public class StorageBusDisk - { - public string Guid { get; set; } - public uint Number { get; set; } - public bool IsClaimed { get; set; } - public bool IsCache { get; set; } - public StorageBusType BusType { get; set; } - } - - public class StorageBusBinding - { - public string Guid { get; set; } - public uint Number { get; set; } - public bool IsCache { get; set; } - } - - public static class DeviceMgmt - { - #region PInvoke structs - - [StructLayout(LayoutKind.Sequential)] - public struct CBFLT_IS_SUPPORTED_DISK_IN - { - public IntPtr Handle; - public UInt32 BusTypesOverride; - } - - [StructLayout(LayoutKind.Sequential)] - public struct CBFLT_SET_PROFILE_IN - { - public UInt32 SystemFlags; - } - - [StructLayout(LayoutKind.Sequential)] - public struct STORAGE_DEVICE_NUMBER - { - public UInt32 DeviceType; - public UInt32 DeviceNumber; - public UInt32 PartitionNumber; - } - - [StructLayout(LayoutKind.Sequential)] - public struct STORAGE_DEVICE_NUMBER_EX - { - public UInt32 Version; - public UInt32 Size; - public UInt32 Flags; - public UInt32 DeviceType; - public UInt32 DeviceNumber; - public Guid DeviceGuid; - public UInt32 PartitionNumber; - } - - public enum PARTITION_STYLE : int - { - PARTITION_STYLE_MBR = 0, - PARTITION_STYLE_GPT = 1, - PARTITION_STYLE_RAW = 2 - } - - [StructLayout(LayoutKind.Sequential)] - public struct DRIVE_LAYOUT_INFORMATION_MBR - { - public UInt32 DiskSignature; - } - - [StructLayout(LayoutKind.Sequential)] - public struct DRIVE_LAYOUT_INFORMATION_GPT - { - public Guid DiskId; - public UInt64 StartingUsableOffset; - public UInt64 UsableLength; - public UInt32 MaxPartitionCount; - } - - [StructLayout(LayoutKind.Explicit)] - public struct PARTITION_INFORMATION_MBR - { - [FieldOffset(0)] - public Byte PartitionType; - [FieldOffset(1)] - public Boolean BootIndicator; - [FieldOffset(2)] - public Boolean RecognizedPartition; - [FieldOffset(4)] - public UInt32 HiddenSectors; - } - - [StructLayout(LayoutKind.Explicit, CharSet=CharSet.Unicode)] - public struct PARTITION_INFORMATION_GPT - { - [FieldOffset(0)] - public Guid PartitionType; - [FieldOffset(16)] - public Guid PartitionId; - [FieldOffset(32)] - public UInt64 Attributes; - [FieldOffset(40)] - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 36)] - public string PartitionName; - } - - [StructLayout(LayoutKind.Explicit)] - public struct PARTITION_INFORMATION_EX - { - [FieldOffset(0)] - public PARTITION_STYLE PartitionStyle; - [FieldOffset(8)] - public UInt64 StartingOffset; - [FieldOffset(16)] - public UInt64 PartitionLength; - [FieldOffset(24)] - public UInt32 PartitionNumber; - [FieldOffset(28)] - public Boolean RewritePartition; - [FieldOffset(32)] - public PARTITION_INFORMATION_MBR Mbr; - [FieldOffset(32)] - public PARTITION_INFORMATION_GPT Gpt; - } - - [StructLayout(LayoutKind.Explicit)] - public struct DRIVE_LAYOUT_INFORMATION_EX - { - [FieldOffset(0)] - public PARTITION_STYLE PartitionStyle; - [FieldOffset(4)] - public UInt32 PartitionCount; - [FieldOffset(8)] - public DRIVE_LAYOUT_INFORMATION_MBR Mbr; - [FieldOffset(8)] - public DRIVE_LAYOUT_INFORMATION_GPT Gpt; - [FieldOffset(48)] - public PARTITION_INFORMATION_EX[] PartitionEntry; - } - - #endregion - - #region PInvoke Definitions - - //File Handle - [DllImport("kernel32.dll", SetLastError = true)] - static extern IntPtr CreateFile(string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); - - [DllImport("kernel32.dll")] - static extern int CloseHandle(IntPtr hObject); - - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool DeviceIoControl(IntPtr hDevice, uint dwIoControlCode, IntPtr lpInBuffer, uint nInBufferSize, IntPtr lpOutBuffer, - uint nOutBufferSize, ref uint lpBytesReturned, IntPtr lpOverlapped); - - #endregion - - #region constants - - // IoControlCode values for disk devices - const uint FILE_ANY_ACCESS = 0; - const uint FILE_READ_ACCESS = 0x0001; - const uint FILE_WRITE_ACCESS = 0x0002; - const uint FILE_BOTH_ACCESS = FILE_READ_ACCESS | FILE_WRITE_ACCESS; - - const uint METHOD_BUFFERED = 0; - const uint METHOD_IN_DIRECT = 1; - const uint METHOD_OUT_DIRECT = 2; - const uint METHOD_NEITHER = 3; - - // createFile access - const uint GENERIC_READ = (0x80000000); - const uint GENERIC_WRITE = (0x40000000); - const uint FILE_SHARE_READ = 0x00000001; - const uint FILE_SHARE_WRITE = 0x00000002; - const uint OPEN_EXISTING = 3; - - // file attribute values - const uint FILE_ATTRIBUTE_NORMAL = 0x00000080; - - //errors - const uint ERROR_CLASS_MISMATCH = 0xE0000203; - const uint ERROR_NO_MORE_ITEMS = 259; - const uint ERROR_INSUFFICIENT_BUFFER = 122; - const uint ERROR_MORE_DATA = 234; - - //random consts - const uint SpDeviceInterfaceDetailSize = 5; - - //device classes - const int DIGCF_DEFAULT = 0x00000001; - const int DIGCF_PRESENT = 0x00000002; - const int DIGCF_ALLCLASSES = 0x00000004; - const int DIGCF_PROFILE = 0x00000008; - const int DIGCF_DEVICEINTERFACE = 0x00000010; - - //disk and hidden disk interface GUIDs - public static Guid GUID_DEVINTERFACE_HIDDEN_DISK = new Guid(0x7fccc86c, 0x228a, 0x40ad, 0x8a, 0x58, 0xf5, 0x90, 0xaf, 0x7b, 0xfd, 0xce); - public static Guid GUID_DEVINTERFACE_DISK = new Guid(0x53f56307, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); - public static Guid GUID_DEVINTERFACE_STORAGEPORT = new Guid(0x2ACCFE60, 0xC130, 0x11D2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b); //{2ACCFE60-C130-11D2-B082-00A0C91EFB8B} - - // SBL cache partition type GUIDs - public static Guid PARTITION_SBL_CACHE_SSD_GUID = new Guid(0xeeff8352, 0xdd2a, 0x44db, 0xae, 0x83, 0xbe, 0xe1, 0xcf, 0x74, 0x81, 0xdc); - public static Guid PARTITION_SBL_CACHE_SSD_RESERVED_GUID = new Guid(0xdcc0c7c1, 0x55ad, 0x4f17, 0x9d, 0x43, 0x4b, 0xc7, 0x76, 0xe0, 0x11, 0x7e); - public static Guid PARTITION_SBL_CACHE_HDD_GUID = new Guid(0x03aaa829, 0xebfc, 0x4e7e, 0xaa, 0xc9, 0xc4, 0xd7, 0x6c, 0x63, 0xb2, 0x4b); - - //ioctl code - public const uint IOCTL_PARTMGR_BASE = 0x00000070; - public const uint IOCTL_CBFLT_BASE = 0x791; - public const uint IOCTL_STORAGE_BASE = 0x0000002d; - public const uint FILE_DEVICE_DISK = 0x00000007; - public const uint IOCTL_DISK_BASE = FILE_DEVICE_DISK; - - private static uint IOCTL_DISK_REAUCTION_DISK = CTL_CODE(IOCTL_PARTMGR_BASE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS); - private static uint IOCTL_CBFLT_IS_SUPPORTED_DISK = CTL_CODE(IOCTL_CBFLT_BASE, 0x09, METHOD_BUFFERED, FILE_READ_ACCESS); - private static uint IOCTL_CBFLT_SET_PROFILE = CTL_CODE(IOCTL_CBFLT_BASE, 0x1b, METHOD_BUFFERED, FILE_WRITE_ACCESS); - private static uint IOCTL_STORAGE_GET_DEVICE_NUMBER_EX = CTL_CODE(IOCTL_STORAGE_BASE, 0x0421, METHOD_BUFFERED, FILE_ANY_ACCESS); - private static uint IOCTL_STORAGE_GET_DEVICE_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS); - private static uint IOCTL_DISK_GET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS); - private static uint IOCTL_DISK_SET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS); - - // clusbflt - const string CLUSBFLT_PR_MANAGER = "\\\\?\\GLOBALROOT\\Device\\CLUSBFLT\\PrMgr$"; - const string CLUSBFLT_BLOCK_TARGETFILE = "\\\\?\\GLOBALROOT\\Device\\CLUSBFLT\\BlockTarget$"; - - public static UInt32 Standalone_Profile_Default = 0x000101F0; - public static UInt32 Standalone_Profile_Claim_Flash = 0x000000F0; - - public static UInt32 Standalone_Cache_Binding_Attributes = 0x00000007; - - #endregion - - #region Ioctl code - - static private uint CTL_CODE(uint DeviceType, uint Function, uint Method, uint Access) - { - return ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method); - } - - static private IntPtr OpenDevice(string devicePath) - { - IntPtr hDevice = IntPtr.Zero; - - hDevice = CreateFile(devicePath, - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_WRITE | FILE_SHARE_READ, - IntPtr.Zero, - OPEN_EXISTING, - 0, - IntPtr.Zero); - - if ((int)hDevice == -1) - { - throw new Win32Exception("CreateFile failed, status " + Marshal.GetLastWin32Error().ToString()); - } - if (hDevice == IntPtr.Zero) - { - throw new Win32Exception("Device handle to '" + devicePath + "'is NULL"); - } - return (hDevice); - } - - static private void CloseDevice(IntPtr hDevice) - { - if ((int)CloseHandle(hDevice) == -1) - { - throw new Win32Exception("CloseHandle() failed, status " + Marshal.GetLastWin32Error().ToString()); - } - return; - } - - static public bool ReauctionDevice(string devicePath) - { - bool boolResult = false; - IntPtr hDevice = IntPtr.Zero; - - try - { - hDevice = OpenDevice(devicePath); - uint bytesReturned = 0; - - boolResult = DeviceIoControl(hDevice, - IOCTL_DISK_REAUCTION_DISK, - IntPtr.Zero, - 0, - IntPtr.Zero, - 0, - ref bytesReturned, - IntPtr.Zero); - if (!boolResult) - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_DISK_REAUCTION_DISK, status " + Marshal.GetLastWin32Error().ToString()); - } - } - catch - { - throw; - } - finally - { - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - } - - return boolResult; - } - - static public StorageBusDisk GetStorageBusDisk(string devicePath) - { - bool boolResult = false; - IntPtr hDevice = IntPtr.Zero; - IntPtr outputPtr = IntPtr.Zero; - - StorageBusDisk disk = new StorageBusDisk(); - disk.Guid = Guid.Empty.ToString(); - disk.Number = 0; - - try - { - try - { - hDevice = OpenDevice(devicePath); - } - catch - { - return disk; - } - - uint bytesReturned = 0; - - int outputSize = Marshal.SizeOf(typeof(STORAGE_DEVICE_NUMBER_EX)); - outputPtr = Marshal.AllocHGlobal(outputSize); - - boolResult = DeviceIoControl(hDevice, - IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, - IntPtr.Zero, - 0, - outputPtr, - (UInt32)outputSize, - ref bytesReturned, - IntPtr.Zero); - if (!boolResult) - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, status " + Marshal.GetLastWin32Error().ToString()); - } - - STORAGE_DEVICE_NUMBER_EX output = (STORAGE_DEVICE_NUMBER_EX) Marshal.PtrToStructure(outputPtr, typeof(STORAGE_DEVICE_NUMBER_EX)); - disk.Guid = "{" + output.DeviceGuid + "}"; - disk.Number = output.DeviceNumber; - } - catch - { - throw; - } - finally - { - if (outputPtr != IntPtr.Zero) - Marshal.FreeHGlobal(outputPtr); - - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - } - - return disk; - } - - static public Guid GetDeviceGuid(string devicePath) - { - bool boolResult = false; - IntPtr hDevice = IntPtr.Zero; - IntPtr outputPtr = IntPtr.Zero; - Guid deviceGuid = new Guid(); - - try - { - try - { - hDevice = OpenDevice(devicePath); - } - catch - { - return deviceGuid; - } - - uint bytesReturned = 0; - - int outputSize = Marshal.SizeOf(typeof(STORAGE_DEVICE_NUMBER_EX)); - outputPtr = Marshal.AllocHGlobal(outputSize); - - boolResult = DeviceIoControl(hDevice, - IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, - IntPtr.Zero, - 0, - outputPtr, - (UInt32)outputSize, - ref bytesReturned, - IntPtr.Zero); - if (!boolResult) - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_STORAGE_GET_DEVICE_NUMBER_EX, status " + Marshal.GetLastWin32Error().ToString()); - } - - STORAGE_DEVICE_NUMBER_EX output = (STORAGE_DEVICE_NUMBER_EX) Marshal.PtrToStructure(outputPtr, typeof(STORAGE_DEVICE_NUMBER_EX)); - deviceGuid = output.DeviceGuid; - } - catch - { - throw; - } - finally - { - if (outputPtr != IntPtr.Zero) - Marshal.FreeHGlobal(outputPtr); - - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - } - - return deviceGuid; - } - - static public bool IsClusBFltCandidate(string devicePath, UInt32 busTypes) - { - bool boolResult = false; - IntPtr hPrMgrDevice = IntPtr.Zero; - IntPtr hDevice = IntPtr.Zero; - IntPtr inputPtr = IntPtr.Zero; - IntPtr outputPtr = IntPtr.Zero; - - try - { - hPrMgrDevice = OpenDevice(CLUSBFLT_PR_MANAGER); - hDevice = OpenDevice(devicePath); - - UInt32 bytesReturned = 0; - - CBFLT_IS_SUPPORTED_DISK_IN input = new CBFLT_IS_SUPPORTED_DISK_IN(); - input.Handle = hDevice; - input.BusTypesOverride = busTypes; - int inputSize = Marshal.SizeOf(typeof(CBFLT_IS_SUPPORTED_DISK_IN)); - inputPtr = Marshal.AllocHGlobal(inputSize); - Marshal.StructureToPtr(input, inputPtr, false); - - int outputSize = Marshal.SizeOf(typeof(uint)); - outputPtr = Marshal.AllocHGlobal(outputSize); - - boolResult = DeviceIoControl(hPrMgrDevice, - IOCTL_CBFLT_IS_SUPPORTED_DISK, - inputPtr, - (UInt32)inputSize, - outputPtr, - (UInt32)outputSize, - ref bytesReturned, - IntPtr.Zero); - - if (!boolResult) - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_CBFLT_IS_SUPPORTED_DISK, status " + Marshal.GetLastWin32Error().ToString()); - } - - uint supportStatus = (uint)Marshal.PtrToStructure(outputPtr, typeof(uint)); - boolResult = (supportStatus == 0); - } - catch - { - throw; - } - finally - { - if (inputPtr != IntPtr.Zero) - Marshal.FreeHGlobal(inputPtr); - - if (outputPtr != IntPtr.Zero) - Marshal.FreeHGlobal(outputPtr); - - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - - if (hPrMgrDevice != IntPtr.Zero) - CloseDevice(hPrMgrDevice); - } - - return boolResult; - } - - static public bool SetClusBFltSystemFlags(UInt32 systemFlags) - { - bool boolResult = false; - IntPtr hTargetMgrFile = IntPtr.Zero; - IntPtr inputPtr = IntPtr.Zero; - - try - { - hTargetMgrFile = OpenDevice(CLUSBFLT_BLOCK_TARGETFILE); - - UInt32 bytesReturned = 0; - CBFLT_SET_PROFILE_IN input = new CBFLT_SET_PROFILE_IN(); - input.SystemFlags = systemFlags; - int inputSize = Marshal.SizeOf(typeof(CBFLT_SET_PROFILE_IN)); - inputPtr = Marshal.AllocHGlobal(inputSize); - Marshal.StructureToPtr(input, inputPtr, false); - - boolResult = DeviceIoControl(hTargetMgrFile, - IOCTL_CBFLT_SET_PROFILE, - inputPtr, - (UInt32)inputSize, - IntPtr.Zero, - 0, - ref bytesReturned, - IntPtr.Zero); - - if (!boolResult) - { - throw new Win32Exception("ClusBFlt driver failed IOCTL_CBFLT_SET_PROFILE, status " + Marshal.GetLastWin32Error().ToString()); - } - } - catch - { - throw; - } - finally - { - if (inputPtr != IntPtr.Zero) - Marshal.FreeHGlobal(inputPtr); - - if (hTargetMgrFile != IntPtr.Zero) - CloseDevice(hTargetMgrFile); - } - - return boolResult; - } - - private static IntPtr ComputeFieldOffset(IntPtr buffer, Type parentStructure, string fieldName) - { - long offset = (long)Marshal.OffsetOf(parentStructure, fieldName); - return (IntPtr)((long)buffer + offset); - } - - private static IntPtr ComputeFieldOffsetAtIndex(IntPtr buffer, Type parentStructure, string fieldName, UInt32 index) - { - Type fieldType = parentStructure.GetField(fieldName).FieldType.GetElementType(); - long elementSize = Marshal.SizeOf(fieldType); - long offset = (long)Marshal.OffsetOf(parentStructure, fieldName) + elementSize * index; - return (IntPtr)((long)buffer + offset); - } - - private static PARTITION_INFORMATION_EX Unmarshal_PARTITION_INFORMATION_EX(IntPtr buffer, UInt32 size) - { - if (size < (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX))) - throw new ArgumentException("Insufficient buffer size to unmarshal PARTITION_INFORMATION_EX.", "buffer"); - PARTITION_INFORMATION_EX info = (PARTITION_INFORMATION_EX)Marshal.PtrToStructure( - buffer, typeof(PARTITION_INFORMATION_EX)); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_MBR) - info.Mbr = (PARTITION_INFORMATION_MBR)Marshal.PtrToStructure( - ComputeFieldOffset(buffer, typeof(PARTITION_INFORMATION_EX), "Mbr"), - typeof(PARTITION_INFORMATION_MBR)); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_GPT) - info.Gpt = (PARTITION_INFORMATION_GPT)Marshal.PtrToStructure( - ComputeFieldOffset(buffer, typeof(PARTITION_INFORMATION_EX), "Gpt"), - typeof(PARTITION_INFORMATION_GPT)); - return info; - } - - private static DRIVE_LAYOUT_INFORMATION_EX Unmarshal_DRIVE_LAYOUT_INFORMATION_EX(IntPtr buffer, UInt32 size) - { - DRIVE_LAYOUT_INFORMATION_EX info = new DRIVE_LAYOUT_INFORMATION_EX(); - info.PartitionStyle = (PARTITION_STYLE)Marshal.ReadInt32(buffer); - info.PartitionCount = (UInt32)Marshal.ReadInt32(ComputeFieldOffset(buffer, - typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionCount")); - if (size < ((UInt32)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry") + - info.PartitionCount * (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)))) - throw new ArgumentException("Insufficient buffer size to unmarshal DRIVE_LAYOUT_INFORMATION_EX.", "buffer"); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_MBR) - info.Mbr = (DRIVE_LAYOUT_INFORMATION_MBR)Marshal.PtrToStructure( - ComputeFieldOffset(buffer, typeof(DRIVE_LAYOUT_INFORMATION_EX), "Mbr"), - typeof(DRIVE_LAYOUT_INFORMATION_MBR)); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_GPT) - info.Gpt = (DRIVE_LAYOUT_INFORMATION_GPT)Marshal.PtrToStructure( - ComputeFieldOffset(buffer, typeof(DRIVE_LAYOUT_INFORMATION_EX), "Gpt"), - typeof(DRIVE_LAYOUT_INFORMATION_GPT)); - info.PartitionEntry = new PARTITION_INFORMATION_EX[info.PartitionCount]; - size -= (UInt32)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry"); - for (UInt32 partNumber = 0; partNumber < info.PartitionCount; partNumber++) - { - info.PartitionEntry[partNumber] = Unmarshal_PARTITION_INFORMATION_EX(ComputeFieldOffsetAtIndex(buffer, - typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry", partNumber), size); - size -= (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)); - } - return info; - } - - private static void Marshal_DRIVE_LAYOUT_INFORMATION_EX(DRIVE_LAYOUT_INFORMATION_EX layout, IntPtr buffer, UInt32 size) - { - if (size < ((UInt32)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry") + - layout.PartitionCount * (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)))) - throw new ArgumentException("Insufficient buffer size to marshal layout.", "buffer"); - Marshal.WriteInt32(buffer, (int)layout.PartitionStyle); - Marshal.WriteInt32(ComputeFieldOffset(buffer, typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionCount"), - (int)layout.PartitionCount); - if (layout.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_GPT) - Marshal.StructureToPtr(layout.Gpt, ComputeFieldOffset(buffer, typeof(PARTITION_INFORMATION_EX), - "Gpt"), false); - else if (layout.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_MBR) - Marshal.StructureToPtr(layout.Mbr, ComputeFieldOffset(buffer, typeof(PARTITION_INFORMATION_EX), - "Mbr"), false); - size -= (UInt32)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry"); - for (UInt32 partNumber = 0; partNumber < layout.PartitionCount; partNumber++) - { - PARTITION_INFORMATION_EX newPart = layout.PartitionEntry[partNumber]; - newPart.RewritePartition = true; - Marshal_PARTITION_INFORMATION_EX(newPart, ComputeFieldOffsetAtIndex(buffer, - typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry", partNumber), size); - size -= (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)); - } - } - - private static void Marshal_PARTITION_INFORMATION_EX(PARTITION_INFORMATION_EX info, IntPtr buffer, UInt32 size) - { - if (size < (UInt32)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX))) - throw new ArgumentException("Insufficient buffer to marshal info.", "buffer"); - Marshal.StructureToPtr(info, buffer, false); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_GPT) - Marshal.StructureToPtr(info.Gpt, ComputeFieldOffset(buffer, - typeof(PARTITION_INFORMATION_EX), "Gpt"), false); - if (info.PartitionStyle == PARTITION_STYLE.PARTITION_STYLE_MBR) - Marshal.StructureToPtr(info.Mbr, ComputeFieldOffset(buffer, - typeof(PARTITION_INFORMATION_EX), "Mbr"), false); - } - - static public DRIVE_LAYOUT_INFORMATION_EX GetDriveLayout(string devicePath) - { - bool boolResult = false; - IntPtr hDevice = IntPtr.Zero; - uint status = 0; - - DRIVE_LAYOUT_INFORMATION_EX layout = new DRIVE_LAYOUT_INFORMATION_EX(); - uint bufferSize = 0; - IntPtr buffer = IntPtr.Zero; - - try - { - hDevice = OpenDevice(devicePath); - bool done = false; - uint bytesReturned = 0; - uint partitionCount = 0; - - while (!done) - { - bufferSize = (UInt32)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry") + - partitionCount * (uint)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)); - buffer = Marshal.AllocHGlobal((int) bufferSize); - - boolResult = DeviceIoControl(hDevice, - IOCTL_DISK_GET_DRIVE_LAYOUT_EX, - IntPtr.Zero, - 0, - buffer, - (UInt32)bufferSize, - ref bytesReturned, - IntPtr.Zero); - if (!boolResult) - { - status = (uint)Marshal.GetLastWin32Error(); - Console.WriteLine("IOCTL_DISK_GET_DRIVE_LAYOUT_EX failed, status = " + status + " bytes returned = " + bytesReturned); - if (status == ERROR_MORE_DATA || status == ERROR_INSUFFICIENT_BUFFER) - { - partitionCount = (UInt32)Marshal.ReadInt32(ComputeFieldOffset(buffer, typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionCount")); - } - else - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_DISK_GET_DRIVE_LAYOUT_EX, status " + status.ToString()); - } - } - else - { - Console.WriteLine("IOCTL_DISK_GET_DRIVE_LAYOUT_EX passed"); - layout = Unmarshal_DRIVE_LAYOUT_INFORMATION_EX(buffer, bufferSize); - done = true; - } - - Marshal.FreeHGlobal(buffer); - buffer = IntPtr.Zero; - } - } - catch - { - throw; - } - finally - { - if (buffer != IntPtr.Zero) - Marshal.FreeHGlobal(buffer); - - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - } - - return layout; - } - - static public void SetDriveLayout(string devicePath, DRIVE_LAYOUT_INFORMATION_EX layout) - { - bool boolResult = false; - IntPtr hDevice = IntPtr.Zero; - IntPtr buffer = IntPtr.Zero; - - try - { - hDevice = OpenDevice(devicePath); - uint bytesReturned = 0; - - uint bufferSize = (uint)Marshal.OffsetOf(typeof(DRIVE_LAYOUT_INFORMATION_EX), "PartitionEntry") + - (uint)Marshal.SizeOf(typeof(PARTITION_INFORMATION_EX)) * (uint)layout.PartitionEntry.Length; - buffer = Marshal.AllocHGlobal((int) bufferSize); - - Marshal_DRIVE_LAYOUT_INFORMATION_EX(layout, buffer, bufferSize); - - boolResult = DeviceIoControl(hDevice, - IOCTL_DISK_SET_DRIVE_LAYOUT_EX, - buffer, - (UInt32)bufferSize, - IntPtr.Zero, - 0, - ref bytesReturned, - IntPtr.Zero); - if (!boolResult) - { - throw new Win32Exception("Device '" + devicePath + "' failed IOCTL_DISK_SET_DRIVE_LAYOUT_EX, status " + Marshal.GetLastWin32Error().ToString()); - } - } - catch - { - throw; - } - finally - { - if (buffer != IntPtr.Zero) - Marshal.FreeHGlobal(buffer); - - if (hDevice != IntPtr.Zero) - CloseDevice(hDevice); - } - } - - static public void CleanupSblCachePartitions(string devicePath) - { - // First, get drive layout - DRIVE_LAYOUT_INFORMATION_EX layout = GetDriveLayout(devicePath); - - // Update layout by skipping SBL cache partitions - uint partitionCount = layout.PartitionCount; - uint partitionIndex = 0; - - for (uint idx = 0; idx < layout.PartitionCount; ++idx) - { - if ((layout.PartitionEntry[idx].Gpt.PartitionType == PARTITION_SBL_CACHE_SSD_GUID) || - (layout.PartitionEntry[idx].Gpt.PartitionType == PARTITION_SBL_CACHE_HDD_GUID) || - (layout.PartitionEntry[idx].Gpt.PartitionType == PARTITION_SBL_CACHE_SSD_RESERVED_GUID)) - { - --partitionCount; - } - else if (partitionIndex != idx) - { - layout.PartitionEntry[partitionIndex] = layout.PartitionEntry[idx]; - ++partitionIndex; - } - } - - // If layout has changed, set the new layout - if (partitionCount < layout.PartitionCount) - { - layout.PartitionCount = partitionCount; - SetDriveLayout(devicePath, layout); - } - } - - #endregion - } -} -"@ - -Add-Type -TypeDefinition $DiskControls -Language CSharp - -[Microsoft.SFS.StorageBusCache.StorageBusType[]]$Global:SupportedBusTypes = @([Microsoft.SFS.StorageBusCache.StorageBusType]::Sas, ` - [Microsoft.SFS.StorageBusCache.StorageBusType]::Sata, ` - [Microsoft.SFS.StorageBusCache.StorageBusType]::Nvme, ` - [Microsoft.SFS.StorageBusCache.StorageBusType]::SCM) - -$Global:SupportedBusTypeFlags = 0 -foreach ($busType in $Global:SupportedBusTypes) -{ - $Global:SupportedBusTypeFlags = $Global:SupportedBusTypeFlags -bor (1 -shl $busType) -} - -function CreateErrorRecord -{ - Param - ( - [String] - $ErrorId, - - [String] - $ErrorMessage, - - [System.Management.Automation.ErrorCategory] - $ErrorCategory, - - [Exception] - $Exception, - - [Object] - $TargetObject - ) - - if($Exception -eq $null) - { - $Exception = New-Object System.Management.Automation.RuntimeException $ErrorMessage - } - - $errorRecord = New-Object System.Management.Automation.ErrorRecord @($Exception, $ErrorId, $ErrorCategory, $TargetObject) - return $errorRecord -} - -function IsS2DEnabled -{ - $clusRegKeyPath = "HKLM:\Cluster" - if (Test-Path $clusRegKeyPath) - { - $clusRegKey = Get-ItemProperty $clusRegKeyPath -Name S2DEnabled -ErrorAction SilentlyContinue - if ($clusRegKey.S2DEnabled -eq 1) - { - return $true - } - } - return $false -} - -function GetAllDisks() -{ - Param () - - $deviceTable = @{} - # Get disk drives visible to PnP, skipping storage spaces virtual disks, if any - $pnpDrives = Get-PnpDevice -Class DiskDrive | ? FriendlyName -ne "Microsoft Storage Space Device" - $systemDisks = Get-Disk | ? { $_.IsSystem -eq $true -or $_.IsBoot -eq $true } - $systemDisks = $systemDisks | Get-PhysicalDisk - - foreach ($drive in $pnpDrives) - { - # Obtain device guid - $devicePathPrefix = "\\?\" + $($drive.DeviceID -replace "\\",'#') - - $devicePath = $devicePathPrefix + "#{" + [Microsoft.SFS.StorageBusCache.DeviceMgmt]::GUID_DEVINTERFACE_DISK + "}" - $disk = [Microsoft.SFS.StorageBusCache.DeviceMgmt]::GetStorageBusDisk($devicePath) - if ($disk.Guid -eq [GUID]::Empty.ToString()) - { - $hiddenDevicePath = $devicePathPrefix + "#{" + [Microsoft.SFS.StorageBusCache.DeviceMgmt]::GUID_DEVINTERFACE_HIDDEN_DISK + "}" - $disk = [Microsoft.SFS.StorageBusCache.DeviceMgmt]::GetStorageBusDisk($hiddenDevicePath) - if ($disk.Guid -eq [GUID]::Empty.ToString()) - { - continue - } - } - - # Check if this is boot or system drive - $sysDisk = $systemDisks | ? ObjectId -match $disk.Guid | Select-Object -First 1 - if ($sysDisk) - { - # Skipping - continue - } - - # Add to device table - if ($disk.Guid -notin $deviceTable.Keys) - { - $deviceTable.Add($disk.Guid, $disk) - } - } - - return $deviceTable -} - - -function Set-StorageBusProfile -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - [System.Boolean] - [Parameter( - Mandatory = $false)] - $ClaimFlash = $false - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - # Disable before setting profile - Disable-StorageBusCache -Force $true - - # Wait for reauction after disable - Start-Sleep -Seconds 10 - - # Set Profile - try - { - $systemFlags = 0; - if ($ClaimFlash) - { - $systemFlags = [Microsoft.SFS.StorageBusCache.DeviceMgmt]::Standalone_Profile_Claim_Flash - } - else - { - $systemFlags = [Microsoft.SFS.StorageBusCache.DeviceMgmt]::Standalone_Profile_Default - } - - # Set profile in memory via clusbflt control - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::SetClusBFltSystemFlags($systemFlags) | Out-Null - - # Set the bus types registry key in clusbflt registry - $clusbfltRegKeyPath = "HKLM:\SYSTEM\CurrentControlSet\Services\clusbflt\Parameters" - $systemFlagsKeyName = "SystemFlags" - if (Test-Path $clusbfltRegKeyPath) - { - New-ItemProperty -Path $clusbfltRegKeyPath -Name $systemFlagsKeyName -Value $systemFlags -PropertyType DWord -Force | Out-Null - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "ClusBFlt registry key not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - - # Enable after Setting profile - Enable-StorageBusCache -} - -function Enable-StorageBusCache -{ - [CmdletBinding(ConfirmImpact="None")] - Param () - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - # Set the bus types registry key in clusbflt registry - $clusbfltRegKeyPath = "HKLM:\SYSTEM\CurrentControlSet\Services\clusbflt\Parameters" - $busTypeKeyName = "SupportedBusTypes" - if (Test-Path $clusbfltRegKeyPath) - { - New-ItemProperty -Path $clusbfltRegKeyPath -Name $busTypeKeyName -Value $Global:SupportedBusTypeFlags -Force | Out-Null - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "ClusBFlt registry key not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # Enumerate all eligible disks - $devices = Get-StorageBusDisk - - # Claim disks - try - { - foreach ($device in $devices) - { - $devicePath = "\\?\Disk" + $device.Guid - - # Check if disk is clusbflt candidate - if (-not [Microsoft.SFS.StorageBusCache.DeviceMgmt]::IsClusBFltCandidate($devicePath, $Global:SupportedBusTypeFlags)) - { - continue - } - - # Reauction the disk - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::ReauctionDevice($devicePath) | Out-Null - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } -} - -function Disable-StorageBusCache -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - [System.Boolean] - [Parameter( - Mandatory = $false)] - $Force = $false - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - - # We should not release any devices until all bindings are removed, unless -Force is specified - if (-not $Force) - { - # Enumerate all eligible disks - $devices = Get-StorageBusDisk - - # Ensure there are no active bindings - foreach ($device in $devices) - { - $boundDevices = Get-StorageBusBinding -Guid $device.Guid - if ($boundDevices) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidOperation" ` - -ErrorMessage "Found existing cache bindings" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - } - - # Enumerate all eligible disks - $devices = Get-StorageBusDisk - - # Clear the bus types registry key in clusbflt registry - $clusbfltRegKeyPath = "HKLM:\SYSTEM\CurrentControlSet\Services\clusbflt\Parameters" - $busTypeKeyName = "SupportedBusTypes" - if (Test-Path $clusbfltRegKeyPath) - { - New-ItemProperty -Path $clusbfltRegKeyPath -Name $busTypeKeyName -Value 0 -Force | Out-Null - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "ClusBFlt registry key not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # Now release all devices. - try - { - foreach ($device in $devices) - { - $devicePath = "\\?\Disk" + $device.Guid - # Check if disk is clusbflt candidate - if (-not [Microsoft.SFS.StorageBusCache.DeviceMgmt]::IsClusBFltCandidate($devicePath, $Global:SupportedBusTypeFlags)) - { - continue - } - - # Reauction the disk - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::ReauctionDevice($devicePath) | Out-Null - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } -} - -function Get-StorageBusDisk -{ - [CmdletBinding( DefaultParameterSetName = "ByGuid")] - Param - ( - #### -------------------- Parameter sets ------------------------------------- #### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $false)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - $paths = $(gwmi -namespace "root\wmi" ClusBfltDeviceInformation).PathInfo - - # Get all disks on this system - $devices = GetAllDisks - $physicalDisks = Get-PhysicalDisk - - # If device is claimed, update its properties based on path properties - foreach ($deviceGuid in $devices.Keys) - { - $phyDisk = $physicalDisks | ? ObjectId -Match $deviceGuid - if ($phyDisk) - { - # Set properties based on physical disk information - $devices[$deviceGuid].BusType = $phyDisk.BusType - $devices[$deviceGuid].Number = $phyDisk.DeviceId - } - - $path = $paths | ? DeviceGuid -Match $deviceGuid | Select-Object -First 1 - if (-not $path) - { - # Device is not claimed, but check if there is a claimed cache partition - if ($phyDisk) - { - # If the partition is claimed, the device guid on the path - # will be the cache partition guid - $cachePartTypeGuid = [Microsoft.SFS.StorageBusCache.DeviceMgmt]::PARTITION_SBL_CACHE_SSD_GUID.Guid - $partGuid = (Get-Disk -Number $phyDisk.DeviceId | Get-Partition | ? GptType -match $cachePartTypeGuid).Guid - if ($partGuid) - { - $path = $paths | ? DeviceGuid -Match $partGuid | Select-Object -First 1 - } - } - } - - if ($path) - { - if (-not $phyDisk) - { - # Set properties based on SBL path information since - # device is claimed but not exposed above SBL - $devices[$deviceGuid].BusType = $path.BusType - $devices[$deviceGuid].Number = $path.DeviceNumber - } - - # The following properties are SBL specific - if (($path.Attributes -band [Microsoft.SFS.StorageBusCache.ClusBflt.PathInfoAttribute]::Partition) -eq 0) - { - # Path does not correspond to cache partition from an unclaimed device - $devices[$deviceGuid].IsClaimed = $true - } - - if (($path.Attributes -band [Microsoft.SFS.StorageBusCache.ClusBflt.PathInfoAttribute]::Solid) -ne 0) - { - $devices[$deviceGuid].IsCache = $true - } - else - { - $devices[$deviceGuid].IsCache = $false - } - } - } - - [Microsoft.SFS.StorageBusCache.StorageBusDisk[]]$disks = @() - - # Enumerate the paths based on input - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" - { - $disks = $devices.Values | ? Guid -match $Guid - break; - } - "ByNumber" - { - $disks = $devices.Values | ? Number -eq $Number - break; - } - "ByPhysicalDisk" - { - $diskGuid = $PhysicalDisk.ObjectId -Replace '.*:' -Replace '"' - $disks = $devices.Values | ? Guid -match $diskGuid - break; - } - } - - return $disks -} - -function Get-StorageBusBinding -{ - [CmdletBinding(ConfirmImpact="None")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - - ) - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - $paths = $(gwmi -namespace "root\wmi" ClusBfltDeviceInformation).PathInfo - $cs = gwmi -namespace "root\wmi" ClusBfltCacheStoresInformation - - [Microsoft.SFS.StorageBusCache.StorageBusBinding[]]$boundDevices = @() - - try - { - foreach ($device in $devices) - { - if ($device.IsCache) - { - $pathid = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Read_Write, 0, 0, 0) - - if ($pathid.PathId -eq 0) - { - # This could be unclaimed cache device with claimed cache partition - $pathid.PathId = ($paths | ? DeviceNumber -eq $device.Number).Id - } - - if ($pathid.PathId -ne 0) - { - $cache = $cs.CacheStoreInfo | ? PathId -eq $pathid.PathId - - if ($cache) - { - $bindingRecords = $pm.QuerySsdBindingRecords($pathid.PathId, $cache.Id) - - foreach ($bindingRecord in $bindingRecords.BindingRecords.BindingRecords) - { - if (($bindingRecord.Flags -band [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Enabled) -ne 0) - { - $boundDevice = Get-StorageBusDisk -Guid $bindingRecord.DeviceGuid - - [Microsoft.SFS.StorageBusCache.StorageBusBinding]$storageBusBinding = [Microsoft.SFS.StorageBusCache.StorageBusBinding]::new() - $storageBusBinding.Guid = $boundDevice.Guid - $storageBusBinding.Number = $boundDevice.Number - $storageBusBinding.IsCache = $boundDevice.IsCache - - $boundDevices += $storageBusBinding - } - } - } - } - } - else - { - $egPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Engaged, 0, 0, 0) - if ($egPath.PathId -ne 0) - { - $hddBinding = $pm.QueryHddBinding($egPath.PathId) - $cache = $cs.CacheStoreInfo | ? Id -eq $hddBinding.BindingInfo.CacheStoreId - $cachePath = $paths | ? Id -eq $cache.PathId - $boundDevice = Get-StorageBusDisk -Guid $cachePath.DeviceGuid - if (-not $boundDevice) - { - # This could be unclaimed cache device with claimed cache partition - $boundDevice = Get-StorageBusDisk -Number $cachePath.DeviceNumber - } - - [Microsoft.SFS.StorageBusCache.StorageBusBinding]$storageBusBinding = [Microsoft.SFS.StorageBusCache.StorageBusBinding]::new() - $storageBusBinding.Guid = $boundDevice.Guid - $storageBusBinding.Number = $boundDevice.Number - $storageBusBinding.IsCache = $boundDevice.IsCache - - $boundDevices += $storageBusBinding - } - } - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - - $boundDevices -} - -function Enable-StorageBusDisk -{ - [CmdletBinding(ConfirmImpact="None")] - param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - # Filter out claimed devices - $devices = $devices | ? IsClaimed -eq $false - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - - foreach ($device in $devices) - { - try - { - # Have clusbflt claim the drive - $dm.SetDeviceAttributes($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Default, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - - # Reauction the disk - $devicePath = "\\?\Disk" + $device.Guid - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::ReauctionDevice($devicePath) | Out-Null - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - } -} - -function Disable-StorageBusDisk -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - # Filter out unclaimed devices - $devices = $devices | ? IsClaimed -eq $true - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - - foreach ($device in $devices) - { - if ($device.IsCache) - { - # First unbind all bound capacity devices - $boundDevices = Get-StorageBusBinding -Guid $device.Guid - if ($boundDevices) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidOperation" ` - -ErrorMessage "Cache device is currently bound" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - else - { - # Remove bindings from cache and capacity dev - Remove-StorageBusBinding -Guid $device.Guid - } - - try - { - # Have clusbflt unclaim the drive - $dm.SetDeviceAttributes($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Disabled, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - - # Reauction the disk - $devicePath = "\\?\Disk" + $device.Guid - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::ReauctionDevice($devicePath) | Out-Null - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - } -} - -function Resume-StorageBusDisk -{ - [CmdletBinding(ConfirmImpact="Low")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - $paths = $(gwmi -namespace "root\wmi" ClusBfltDeviceInformation).PathInfo - - foreach ($device in $devices) - { - if ($device.IsCache) - { - # First resume all bound capacity devices - $boundDevices = Get-StorageBusBinding -Guid $device.Guid - foreach ($boundDevice in $boundDevices) - { - Resume-StorageBusDisk -Guid $boundDevice.Guid - } - } - else - { - try - { - $egPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Engaged, 0, 0, 0) - if ($egPath.PathId -ne 0) - { - # Obtain the capacity device binding info - $binding = $pm.QueryHddBinding($egPath.PathId).BindingInfo - - # Obtain the cache store - $cs = gwmi -namespace "root\wmi" ClusBfltCacheStoresInformation - $cache = $cs.CacheStoreInfo | ? Id -Match $binding.CacheStoreId - - # Obtain binding record that matches binding Id - $bindingRecord = $pm.QuerySsdBindingRecords($cache.PathId, $cache.Id).BindingRecords.BindingRecords | ? BindingId -Match $binding.BindingId - - if ($bindingRecord -ne $null) - { - # Set cache binding attribute back to default - $pm.SetSsdBindingAttributes($cache.PathId, [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Default, [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Disable_Write_Cache, $cache.Id, $binding.BindingId) - } - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - } - } -} - -function Suspend-StorageBusDisk -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - - foreach ($device in $devices) - { - if ($device.IsCache) - { - # First suspend all bound capacity devices - $boundDevices = Get-StorageBusBinding -Guid $device.Guid - foreach ($boundDevice in $boundDevices) - { - Suspend-StorageBusDisk -Guid $boundDevice.Guid - } - } - else - { - try - { - $egPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Engaged, 0, 0, 0) - if ($egPath.PathId -ne 0) - { - # Obtain the capacity device binding info - $binding = $pm.QueryHddBinding($egPath.PathId).BindingInfo - - # Obtain the cache store - $cs = gwmi -namespace "root\wmi" ClusBfltCacheStoresInformation - $cache = $cs.CacheStoreInfo | ? Id -Match $binding.CacheStoreId - - # Obtain binding record that matches binding Id - $bindingRecord = $pm.QuerySsdBindingRecords($cache.PathId, $cache.Id).BindingRecords.BindingRecords | ? BindingId -Match $binding.BindingId - - if ($bindingRecord -ne $null -and ($bindingRecord.Flags -band [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Enabled) -ne 0) - { - # Disable Write cache - $pm.SetSsdBindingAttributes($cache.PathId, [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Disable_Write_Cache, [Microsoft.SFS.StorageBusCache.ClusBflt.CacheStoreBindingAttribute]::Disable_Write_Cache, $cache.Id, $binding.BindingId) - - # Wait for dirty page count to go down to 0 for this cache binding - while ($true) - { - if ($bindingRecord.cDirtyPages -eq 0 -and $bindingRecord.cDirtySlots -eq 0) - { - break - } - Start-Sleep -Seconds 10 - $bindingRecord = $pm.QuerySsdBindingRecords($cache.PathId, $cache.Id).BindingRecords.BindingRecords | ? BindingId -Match $binding.BindingId - } - } - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - } - } -} - -function New-StorageBusCacheStore -{ - [CmdletBinding(ConfirmImpact="Low")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.String] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - #### -------------------- Common parameters -------------------------------------#### - - [System.UInt32] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $false)] - $PageSize = 8KB, - - [System.UInt64] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $false)] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $false)] - $ReserveCapacity = 0 - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $cacheDevice = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $cacheDevice = Get-StorageBusDisk -Number $Number; break; } - } - - # Filter out unclaimed devices - $cacheDevice = $cacheDevice | ? IsClaimed -eq $true - - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - - # Ensure exactly one cache device is obtained - if (-not $cacheDevice) - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Specified cache device not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if ($cacheDevice.Count -ne 1) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "More than one matching cache device found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if (-not $cacheDevice.IsCache) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Not a cache device" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $deviceAttributes = $dm.GetDeviceAttributes($cacheDevice.Guid) - - try - { - # Create cache store - $dm.SetDeviceAttributes($cacheDevice.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Maintenance, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - - $mmPath = $pm.GetPathIdByDeviceGuid($cacheDevice.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Maintenance, 0, 0, 0) - if ($mmPath) - { - $pm.CreateSsdCacheStore($mmPath.PathId, 0, $ReserveCapacity, $PageSize) - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Device path not found after setting Maintenance mode" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - finally - { - $dm.SetDeviceAttributes($cacheDevice.Guid, $deviceAttributes.Attributes, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - } -} - -function New-StorageBusBinding -{ - [CmdletBinding(ConfirmImpact="Low")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("CacheId")] - $CacheGuid, - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("CapacityId")] - $CapacityGuid, - - [System.String] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $CacheNumber, - - [System.String] - [Parameter( - ParameterSetName = 'ByNumber', - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $CapacityNumber - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $cacheDevice = Get-StorageBusDisk -Guid $CacheGuid; $capacityDevice = Get-StorageBusDisk -Guid $CapacityGuid; break; } - "ByNumber" { $cacheDevice = Get-StorageBusDisk -Number $CacheNumber; $capacityDevice = Get-StorageBusDisk -Number $CapacityNumber; break; } - } - - # Filter out unclaimed devices - $capacityDevice = $capacityDevice | ? IsClaimed -eq $true - - # Ensure exactly one cache device is obtained - if (-not $cacheDevice) - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Specified cache device not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if ($cacheDevice.Count -ne 1) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "More than one matching cache device found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if (-not $cacheDevice.IsCache) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Not a cache device" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - # Ensure exactly one capacity device is obtained - if (-not $capacityDevice) - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Specified capacity device not found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if ($capacityDevice.Count -ne 1) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "More than one matching capacity device found" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - if ($capacityDevice.IsCache) - { - $errorObject = CreateErrorRecord -ErrorId "InvalidArgument" ` - -ErrorMessage "Not a capacity device" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidArgument) ` - -Exception $null ` - -TargetObject $null - - $psCmdlet.WriteError($errorObject) - return - } - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - $cs = gwmi -namespace "root\wmi" ClusBfltCacheStoresInformation - $paths = $(gwmi -namespace "root\wmi" ClusBfltDeviceInformation).PathInfo - - $deviceAttributes = $dm.GetDeviceAttributes($capacityDevice.Guid) - - try - { - # Obtain the cache store - $cache = $cs.CacheStoreInfo | ? DeviceGuid -Match $cacheDevice.Guid - - if ($cache -eq $null) - { - # This could be unclaimed cache device with claimed cache partition - $cachePath = $paths | ? DeviceNumber -eq $cacheDevice.Number - if ($cachePath) - { - $cache = $cs.CacheStoreInfo | ? DeviceGuid -Match $cachePath.DeviceGuid - } - } - - if ($cache -eq $null) - { - # No cache store found so create cache store - New-StorageBusCacheStore -Guid $cacheDevice.Guid -PageSize 8KB -ReserveCapacity 32GB - - # Obtain the cache store - $cs = gwmi -namespace "root\wmi" ClusBfltCacheStoresInformation - $cache = $cs.CacheStoreInfo | ? DeviceGuid -Match $cacheDevice.Guid - - if (-not $cache) - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "No cache store found on cache device " + $cacheDevice.Guid ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - - # Check if the capacity device is already bound - $egPath = $pm.GetPathIdByDeviceGuid($capacityDevice.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Engaged, 0, 0, 0) - if ($egPath.PathId -eq 0) - { - # Bind Capacity device to cache store - $dm.SetDeviceAttributes($capacityDevice.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Maintenance, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - $mmPath = $pm.GetPathIdByDeviceGuid($capacityDevice.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Maintenance, 0, 0, 0) - - if ($mmPath.PathId -ne 0) - { - $pm.PrepareHddForCache($mmPath.PathId, 0) - $pm.BindHddToCacheStore($mmPath.PathId, [Microsoft.SFS.StorageBusCache.DeviceMgmt]::Standalone_Cache_Binding_Attributes, $cache.Id) - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Device path not found after setting Maintenance mode" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - else - { - $errorObject = CreateErrorRecord -ErrorId "InvalidOperation" ` - -ErrorMessage "Capacity device is already bound" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - finally - { - $dm.SetDeviceAttributes($capacityDevice.Guid, $deviceAttributes.Attributes, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - } -} - -function Remove-StorageBusBinding -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - # Filter out unclaimed devices - $devices = $devices | ? IsClaimed -eq $true - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - - foreach ($device in $devices) - { - if ($device.IsCache) - { - # First unbind all bound capacity devices - $boundDevices = Get-StorageBusBinding -Guid $device.Guid - foreach ($boundDevice in $boundDevices) - { - Remove-StorageBusBinding -Guid $boundDevice.Guid - } - } - else - { - try - { - $deviceAttributes = $dm.GetDeviceAttributes($device.Guid) - - $egPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Engaged, 0, 0, 0) - if ($egPath.PathId -ne 0) - { - # Disable write cache and drain IOs - Suspend-StorageBusDisk -Guid $device.Guid - - # Unbind HDD - $dm.SetDeviceAttributes($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Maintenance, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - $mmPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Maintenance, 0, 0, 0) - if ($mmPath.PathId -ne 0) - { - $pm.UnBindHdd($mmPath.PathId, 0) - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Device path not found after setting Maintenance mode" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - finally - { - $dm.SetDeviceAttributes($device.Guid, $deviceAttributes.Attributes, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - } - } - } -} - -function Clear-StorageBusDisk -{ - [CmdletBinding(ConfirmImpact="High")] - Param - ( - #### -------------------- Parameter sets -------------------------------------#### - - [System.String] - [Parameter( - ParameterSetName = 'ByGuid', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [Alias("Id")] - $Guid, - - [System.UInt16] - [Parameter( - ParameterSetName = 'ByNumber', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $Number, - - [Microsoft.Management.Infrastructure.CimInstance] - [PSTypeName("Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_PhysicalDisk")] - [Parameter( - ParameterSetName = 'ByPhysicalDisk', - ValueFromPipeline = $true, - Mandatory = $true)] - [ValidateNotNullOrEmpty()] - $PhysicalDisk - ) - - if (IsS2DEnabled) - { - $errorObject = CreateErrorRecord -ErrorId "Cluster S2D is enabled" ` - -ErrorMessage "StorageBusCache Cmdlets cannot be run on a cluster S2D setup" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::InvalidOperation) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - - switch ($psCmdlet.ParameterSetName) - { - "ByGuid" { $devices = Get-StorageBusDisk -Guid $Guid; break; } - "ByNumber" { $devices = Get-StorageBusDisk -Number $Number; break; } - "ByPhysicalDisk" { $devices = Get-StorageBusDisk -Number $PhysicalDisk.DeviceId; break; } - } - - # Filter out unclaimed devices - $devices = $devices | ? IsClaimed -eq $true - - $dm = gwmi -namespace "root\wmi" ClusBfltDeviceMethods - $pm = gwmi -namespace "root\wmi" ClusBfltPathMethods - - foreach ($device in $devices) - { - $deviceAttributes = $dm.GetDeviceAttributes($device.Guid) - - try - { - $dm.SetDeviceAttributes($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::Maintenance, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - $mmPath = $pm.GetPathIdByDeviceGuid($device.Guid, [Microsoft.SFS.StorageBusCache.ClusBflt.PathType]::Maintenance, 0, 0, 0) - - if ($mmPath.PathId -ne 0) - { - # Remove all cache partitions on the disk - $devicePath = "\\?\Disk" + $device.Guid - [Microsoft.SFS.StorageBusCache.DeviceMgmt]::CleanupSblCachePartitions($devicePath) | Out-Null - } - else - { - $errorObject = CreateErrorRecord -ErrorId "NotFound" ` - -ErrorMessage "Device path not found after setting Maintenance mode" ` - -ErrorCategory ([System.Management.Automation.ErrorCategory]::ObjectNotFound) ` - -Exception $null ` - -TargetObject $null - $psCmdlet.WriteError($errorObject) - return - } - } - catch - { - $errorObject = CreateErrorRecord -ErrorId $_.FullyQualifiedErrorId ` - -ErrorMessage $null ` - -ErrorCategory $_.CategoryInfo.Category ` - -Exception $_.Exception ` - -TargetObject $_.TargetObject - $psCmdlet.WriteError($errorObject) - return - } - finally - { - $dm.SetDeviceAttributes($device.Guid, $deviceAttributes.Attributes, [Microsoft.SFS.StorageBusCache.ClusBflt.DiskAttribute]::All) - } - } -} diff --git a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.types.ps1xml b/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.types.ps1xml deleted file mode 100644 index 1e2fd8e..0000000 --- a/newton-cn/bin/v1.0/Modules/StorageBusCache/StorageBusCache.types.ps1xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - StorageBusDisk - - - DiskNumber - Number - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/TLS/tls.psd1 b/newton-cn/bin/v1.0/Modules/TLS/tls.psd1 deleted file mode 100644 index cbd26a5..0000000 --- a/newton-cn/bin/v1.0/Modules/TLS/tls.psd1 +++ /dev/null @@ -1,25 +0,0 @@ -@{ -GUID="{1E28C697-2370-42F2-ACE1-5AC8777F8053}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="2.0.0.0" -PowerShellVersion="5.1" -CLRVersion="4.0" -ModuleToProcess="Microsoft.WindowsAuthenticationProtocols.Commands" -HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=287167" -CmdletsToExport= - "New-TlsSessionTicketKey", - "Enable-TlsSessionTicketKey", - "Disable-TlsSessionTicketKey", - "Export-TlsSessionTicketKey", - "Get-TlsCipherSuite", - "Enable-TlsCipherSuite", - "Disable-TlsCipherSuite", - "Get-TlsEccCurve", - "Enable-TlsEccCurve", - "Disable-TlsEccCurve" -CompatiblePSEditions= - "Core", - "Desktop" -} diff --git a/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.format.ps1xml b/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.format.ps1xml deleted file mode 100644 index 9ff58bb..0000000 --- a/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.format.ps1xml +++ /dev/null @@ -1,383 +0,0 @@ - - - - DiagPack - - Microsoft.Windows.Diagnosis.DiagPack - - - - - - 25 - left - - - - 40 - left - - - - 40 - left - - - - 15 - left - - - - - - - Id - - - Name - - - Publisher - - - Version - - - - - - - - DiagRootCause - - Microsoft.Windows.Diagnosis.DiagRootCause - - - - - - 120 - left - - - - - - - Name - - - - - - - - DiagRootCause - - Microsoft.Windows.Diagnosis.DiagRootCause - - - - - - 120 - left - - - - - - - Name - - - - - - - - DiagResolution - - Microsoft.Windows.Diagnosis.DiagResolution - - - - - - 75 - left - - - - 10 - left - - - - 15 - left - - - - 20 - left - - - - - - - Name - - - Manual - - - RequiresElevation - - - RequiresInteraction - - - - - - - - DiagInteraction - - Microsoft.Windows.Diagnosis.DiagInteraction - - - - - - 85 - left - - - - 15 - left - - - - 20 - left - - - - - - - Name - - - ($_.Dynamic -eq $false) - - - AnswerType - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.psd1 b/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.psd1 deleted file mode 100644 index 0e0b5e4..0000000 --- a/newton-cn/bin/v1.0/Modules/TroubleshootingPack/TroubleshootingPack.psd1 +++ /dev/null @@ -1,14 +0,0 @@ -@{ - GUID="{d6fdb0d8-2b0f-406b-afc6-68f60569ebdf}" - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion="1.0.0.0" - PowerShellVersion = '5.1' - CLRVersion="4.0" - FormatsToProcess="TroubleshootingPack.Format.ps1xml" - NestedModules="Microsoft.Windows.Diagnosis.TroubleshootingPack" - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=285571" - CmdletsToExport = "Get-TroubleshootingPack","Invoke-TroubleshootingPack" - CompatiblePSEditions = @("Desktop", "Core") -} diff --git a/newton-cn/bin/v1.0/Modules/TrustedPlatformModule/TrustedPlatformModule.psd1 b/newton-cn/bin/v1.0/Modules/TrustedPlatformModule/TrustedPlatformModule.psd1 deleted file mode 100644 index 7427bf4..0000000 --- a/newton-cn/bin/v1.0/Modules/TrustedPlatformModule/TrustedPlatformModule.psd1 +++ /dev/null @@ -1,26 +0,0 @@ -@{ -GUID="{17fc1f02-cff3-45fb-ac4f-126594c70b1e}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="2.0.0.0" -ModuleToProcess="Microsoft.Tpm.Commands" -PowerShellVersion = '5.1' -CLRVersion="4.0" -AliasesToExport = @() -FunctionsToExport = @() -CmdletsToExport= - "Get-Tpm", - "Initialize-Tpm", - "Clear-Tpm", - "Unblock-Tpm", - "Enable-TpmAutoProvisioning", - "Disable-TpmAutoProvisioning", - "Import-TpmOwnerAuth", - "Set-TpmOwnerAuth", - "ConvertTo-TpmOwnerAuth", - "Get-TpmEndorsementKeyInfo", - "Get-TpmSupportedFeature" -HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390838" -CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/UEV/Microsoft.Uev.Commands.dll b/newton-cn/bin/v1.0/Modules/UEV/Microsoft.Uev.Commands.dll deleted file mode 100644 index 1f5a56992784bf1b7155b2d8154ea8bf6ba248e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84480 zcmeFa2Yi&();_x4cP5i$(tAP@l29j=5=tlnp-1VV+8`tYjD}2@Nl?TRL_t)JVnM|Q zwj;JE;leDl^(*V}wP5Wx5#j;>VTTG3xK#Nv>FrzItMOdU+7R+di-4Pb)Y+;pP ziWx3JR_G8c4wqntJw&N31S@n17KcM*+C$XaLa;)IU~xD^mOVt!7J?Nz1dGEVvN;6T zD>K^S)(DFn%Yqqg@lk|Du4TcDw&?A!r;=w`FrzIRA}r8$l^@J#i}eu}Xrao28Ex@U z*uqstl;1y=(B-)QrI{X3m!|;jx}v}7*}`BmlR`*_y@U>FdM;z!om;+iBM+L1tL9!- zNzd>Xao{#jG5)}WJBz;rd_wt{bi;#w?M`$B-iHgGo^0XrU|e>4u0*6c8&Tj!@9eni zJiS?_^&FAn5xx&VPskZ+y?%!Yig$TmHfhm^|k z=?JrTQj!@T*bjG#(ldh|PO21SZ~qLZndS^QoYY!im*-~0m}xPAQpmIIaw;QZ5RYfa z($wvQZl->|{g!f2dni<*Z{0>N+~-k}zU^V;qRtFg*-A5rI&h!HP;g2hj8(_g@B)da1u?3*-GLFvLW1e3=0cJB&h;dl z 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 - - - Microsoft.Uev.Commands.Template - - - PsStandardMembers - - - DefaultDisplayProperty - TemplateName - - - DefaultDisplayPropertySet - - TemplateId - TemplateName - TemplateDescription - TemplateVersion - TemplateType - Enabled - EnableStateLocation - TemplateProfile - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/UEV/UEV.psd1 b/newton-cn/bin/v1.0/Modules/UEV/UEV.psd1 deleted file mode 100644 index 9c19fa152aa19a944d853691923e0070990424c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmbu8-A>y;5QWcmrM`njZ;AxQgx^#`B_%D51XWZB_bGP3B7eexP*5L;mu&mZtPLqp zgoG^b&hE^dJu_$b&+l#B=&jypR~@y~RHQBbIjkDrXRT;eJF06@i5kpit!e}R23B30 z`a;YiF^SgLOUSahN$w}DgJkFpU1*|HjdXr@!oG4HvmUA7@8OR?v52vcU3PM;VTobB z0lqFfKlP1ypzKv>V{pzn;{;}QdZ_#s>*d^Hq8sY-MKf51uQDpj*u7*-6_<7FQ%6ca z`s^OLzbNah7}SVe=3l3?b>^hZY?C?li~|^Fe(KW*YmN|lzoR{Uf99kLeU{fDC$(Wd zLLsZd>IvO>+?kl0lTl;r>J3oE6iUg78LcycN7Io^@f;N^Z7bYP*{g_qbA{jfmNO2W zK?MJtoe6#Gf|%=?`5q&j*+t3BZ^h8{Jcj?jd;*h0bhi@<{lCr*JdUW~J~k$&K$j~p ztD4@?mp$*&ESsKpZh&u!PIk*ru_weubi_0qf-s_jl${H3Q?Djt{DH@Abz1-;L_?lJ2H_|BCtJj0sz%6|Fy7o=Of(EtDd diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_EapConfiguration_v1.0.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_EapConfiguration_v1.0.0.cdxml deleted file mode 100644 index 2c7cfb0..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_EapConfiguration_v1.0.0.cdxml +++ /dev/null @@ -1,165 +0,0 @@ - - - - 1.0.0 - EapConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pap - Chap - MSChap - MSChapv2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionIPsecConfiguration_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionIPsecConfiguration_v1.0.cdxml deleted file mode 100644 index 2d998a2..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionIPsecConfiguration_v1.0.cdxml +++ /dev/null @@ -1,192 +0,0 @@ - - - - 1.0 - VpnConnectionIPsecConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionProxy_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionProxy_v1.0.cdxml deleted file mode 100644 index 746a58e..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionProxy_v1.0.cdxml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 1.0 - VpnConnectionProxy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionRoute_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionRoute_v1.0.cdxml deleted file mode 100644 index 8bcc14c..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionRoute_v1.0.cdxml +++ /dev/null @@ -1,112 +0,0 @@ - - - - 1.0 - VpnConnectionRoute - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerApplication_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerApplication_v1.0.cdxml deleted file mode 100644 index aa8a630..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerApplication_v1.0.cdxml +++ /dev/null @@ -1,99 +0,0 @@ - - - - 1.0 - VpnConnectionTriggerApplication - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerDnsConfiguration_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerDnsConfiguration_v1.0.cdxml deleted file mode 100644 index 28ef9a7..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerDnsConfiguration_v1.0.cdxml +++ /dev/null @@ -1,162 +0,0 @@ - - - - 1.0 - VpnConnectionTriggerDnsConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerTrustedNetwork_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerTrustedNetwork_v1.0.cdxml deleted file mode 100644 index 8ade665..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTriggerTrustedNetwork_v1.0.cdxml +++ /dev/null @@ -1,144 +0,0 @@ - - - - 1.0 - VpnConnectionTriggerTrustedNetwork - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTrigger_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTrigger_v1.0.cdxml deleted file mode 100644 index 5b03745..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnectionTrigger_v1.0.cdxml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 1.0 - VpnConnectionTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnection_v1.0.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnection_v1.0.0.cdxml deleted file mode 100644 index 517b729..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnConnection_v1.0.0.cdxml +++ /dev/null @@ -1,590 +0,0 @@ - - - - 1.0.0 - VpnConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pptp - L2tp - Sstp - Ikev2 - Automatic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pap - Chap - MSChapv2 - Eap - MachineCertificate - - - - - - - - - - NoEncryption - Optional - Required - Maximum - Custom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pptp - L2tp - Sstp - Ikev2 - Automatic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pap - Chap - MSChapv2 - Eap - MachineCertificate - - - - - - - - - - - - - - - - - - - - - - - - NoEncryption - Optional - Required - Maximum - Custom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enable - disable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnServerAddress_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnServerAddress_v1.0.cdxml deleted file mode 100644 index 6599b99..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/PS_VpnServerAddress_v1.0.cdxml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 1.0 - VpnServerAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClient.psd1 b/newton-cn/bin/v1.0/Modules/VpnClient/VpnClient.psd1 deleted file mode 100644 index 0e11689..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClient.psd1 +++ /dev/null @@ -1,20 +0,0 @@ -@{ - GUID = '3389cc73-daa3-4d25-bd50-b1730925d2df' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - Copyright = '© Microsoft Corporation. All rights reserved.' - ModuleVersion = '2.0.0.0' - PowerShellVersion = '5.1' - - FormatsToProcess = 'VpnClientPsProvider.Format.ps1xml' - TypesToProcess = 'VpnClientPSProvider.Types.ps1xml' - - HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390842" - - NestedModules = @("PS_VpnConnection_v1.0.0.cdxml", "PS_EapConfiguration_v1.0.0.cdxml", "PS_VpnConnectionProxy_v1.0.cdxml", "PS_VpnServerAddress_v1.0.cdxml", "PS_VpnConnectionRoute_v1.0.cdxml", "PS_VpnConnectionIPsecConfiguration_v1.0.cdxml", "PS_VpnConnectionTrigger_v1.0.cdxml", "PS_VpnConnectionTriggerApplication_v1.0.cdxml","PS_VpnConnectionTriggerDnsConfiguration_v1.0.cdxml","PS_VpnConnectionTriggerTrustedNetwork_v1.0.cdxml") - - AliasesToExport = @() - CmdletsToExport = @() - FunctionsToExport = @("Add-VpnConnection", "Set-VpnConnection", "Remove-VpnConnection", "Get-VpnConnection", "New-EapConfiguration", "Set-VpnConnectionProxy", "New-VpnServerAddress", "Add-VpnConnectionRoute", "Remove-VpnConnectionRoute", "Set-VpnConnectionIPsecConfiguration", "Add-VpnConnectionTriggerApplication","Remove-VpnConnectionTriggerApplication","Add-VpnConnectionTriggerDnsConfiguration","Remove-VpnConnectionTriggerDnsConfiguration","Set-VpnConnectionTriggerDnsConfiguration", "Get-VpnConnectionTrigger", "Add-VpnConnectionTriggerTrustedNetwork", "Remove-VpnConnectionTriggerTrustedNetwork", "Set-VpnConnectionTriggerTrustedNetwork") - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Format.ps1xml b/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Format.ps1xml deleted file mode 100644 index 9d60f7b..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Format.ps1xml +++ /dev/null @@ -1,838 +0,0 @@ - - - - - - VpnCommonConfig_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnCommonConfig - - - - - 15 - - - 20 - - - 15 - - - 20 - - - 20 - - - - - - - Name - - - ServerAddress - - - ProfileType - - - ConnectionStatus - - - IsAutoTriggerEnabled - - - - - - - - VpnCommonConfig_Wide - - Microsoft.Management.Infrastructure.CimInstance#VpnCommonConfig - - - - - - Name - - - - - - - VpnConnection_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnection - - - - - - - Name - - - ServerAddress - - - AllUserConnection - - - Guid - - - TunnelType - - - AuthenticationMethod - - - EncryptionLevel - - - L2tpIPsecAuth - - - UseWinlogonCredential - - - EapConfigXmlStream - - - ConnectionStatus - - - RememberCredential - - - SplitTunneling - - - DnsSuffix - - - IdleDisconnectSeconds - - - - - - - - ThirdPartyVpnConnection_List - - Microsoft.Management.Infrastructure.CimInstance#ThirdPartyVpnConnection - - - - - - - Name - - - ServerAddress - - - Guid - - - ConnectionStatus - - - RememberCredential - - - SplitTunneling - - - DnsSuffix - - - IdleDisconnectSeconds - - - PlugInApplicationID - - - CustomConfiguration - - - - - - - - EapConfiguration_List - - Microsoft.Management.Infrastructure.CimInstance#EapConfiguration - - - - - - - EapConfigXmlStream - - - - - - - - EapConfiguration_Table - - Microsoft.Management.Infrastructure.CimInstance#EapConfiguration - - - - - 80 - - - - - - - EapConfigXmlStream - - - - - - - - EapConfiguration_Wide - - Microsoft.Management.Infrastructure.CimInstance#EapConfiguration - - - - - - EapConfigXmlStream - - - - - - - VpnServerAddress_List - - Microsoft.Management.Infrastructure.CimInstance#VpnServerAddress - - - - - - - ServerAddress - - - FriendlyName - - - - - - - - VpnServerAddress_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnServerAddress - - - - - 20 - - - 20 - - - - - - - ServerAddress - - - FriendlyName - - - - - - - - VpnServerAddress_Wide - - Microsoft.Management.Infrastructure.CimInstance#VpnServerAddress - - - - - - FriendlyName - - - - - - - VpnConnectionIPsecConfiguration_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionIPsecConfiguration - - - - - - - AuthenticationTransformConstants - - - CipherTransformConstants - - - DHGroup - - - IntegrityCheckMethod - - - PfsGroup - - - EncryptionMethod - - - - - - - - VpnConnectionIPsecConfiguration_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionIPsecConfiguration - - - - - 20 - - - 20 - - - 20 - - - 20 - - - 20 - - - 20 - - - - - - - AuthenticationTransformConstants - - - CipherTransformConstants - - - DHGroup - - - IntegrityCheckMethod - - - PfsGroup - - - EncryptionMethod - - - - - - - - VpnConnectionTriggerApplication_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerApplication - - - - - - - ConnectionName - - - ApplicationID - - - - - - - - VpnConnectionTriggerApplication_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerApplication - - - - - 20 - - - 20 - - - - - - - ConnectionName - - - ApplicationID - - - - - - - - VpnConnectionTriggerApplication_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerApplication - - - - - - - ConnectionName - - - ApplicationID - - - - - - - - VpnConnectionTriggerTrustedNetwork_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerTrustedNetwork - - - - - - - ConnectionName - - - DnsSuffix - - - - - - - - VpnConnectionTriggerTrustedNetwork_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerTrustedNetwork - - - - - 20 - - - 40 - - - - - - - ConnectionName - - - DnsSuffix - - - - - - - - VpnConnectionTriggerTrustedNetwork_Wide - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerTrustedNetwork - - - - - - - ConnectionName - - - - - - - - VpnConnectionTriggerDnsConfiguration_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerDnsConfiguration - - - - - 20 - - - 20 - - - 40 - - - 40 - - - - - - - ConnectionName - - - DnsSuffix - - - DnsIPAddress - - - DnsSuffixSearchList - - - - - - - - MSFT_NetRoute_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetRoute - - - - - - - DestinationPrefix - - - InterfaceIndex - - - InterfaceAlias - - - AddressFamily - - - NextHop - - - Publish - - - RouteMetric - - - - Store - - - - - - - - VpnConnectionTrigger_Custom - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTrigger - - - - - - - - - - $outputStr = ""; - $outputStr += "ConnectionName : " + $_.ConnectionName + "`r`n"; - - $appidlist = $null - foreach($appid in $_.ApplicationID) - { - if($appidlist -ne $null) - { - $appidlist += ", " ; - } - $appidlist += $appid; - } - - if($appidlist -ne $null) - { - $outputStr += "ApplicationID : {" + $appidlist + "} `r`n"; - } - - $trustednetworklist = $null - foreach($trustednetwork in $_.TrustedNetwork) - { - if($trustednetworklist -ne $null) - { - $trustednetworklist += ", " ; - } - $trustednetworklist += $trustednetwork; - } - if($trustednetworklist -ne $null) - { - $outputStr += "TrustedNetwork : {" + $trustednetworklist + "} `r`n"; - } - - $dnssuffixsearchlist = $null - foreach($dnssearchsuffix in $_.DnsSuffixSearchList) - { - if($dnssuffixsearchlist -ne $null) - { - $dnssuffixsearchlist += ", "; - } - $dnssuffixsearchlist += $dnssearchsuffix; - } - if($dnssuffixsearchlist -ne $null) - { - $outputStr += "Dns Suffix Search List : " + $dnssuffixsearchlist + "`r`n"; - } - - if($_.dnsConfig -ne $null) - { - $dnsSuffixColWidth = 50; - $dnsServerColWidth = 50; - $spaceBtwCols = 10; - - $outputStr += "`r`n"; - $name = "Dns Suffix"; - $outputStr += $name; - $temp = $dnsSuffixColWidth + $spaceBtwCols - $name.Length; - while($temp -gt 0) - { - $outputStr += " "; - $temp = $temp - 1; - } - $outputStr += "Dns Servers `r`n"; - - $temp = 0; - while($temp -lt $dnsSuffixColWidth) - { - $outputStr += "_ "; - $temp = $temp + 2; - } - - $temp = 0; - while($temp -lt $spaceBtwCols) - { - $outputStr += " "; - $temp = $temp + 1; - } - - $temp = 0; - while($temp -lt $dnsServerColWidth) - { - $outputStr += "_ "; - $temp = $temp + 2; - } - $outputStr += "`r`n"; - - $dnsConfig = $null; - foreach($a in $_.dnsConfig) - { - $suffix = $a.DnsSuffix; - if($suffix.Length -gt 50) - { - $suffix = $suffix.Substring(0, $dnsSuffixColWidth - 3); - $suffix += "..."; - } - $dnsConfig += $suffix; - - $temp = $dnsSuffixColWidth + $spaceBtwCols - $suffix.Length; - while($temp -gt 0) - { - $dnsConfig += " "; - $temp = $temp - 1; - } - - $ipaddrlist = $null; - foreach($ipaddr in $a.DnsIPAddress) - { - if($ipaddrlist -ne $null) - { - $ipaddrlist += ", " ; - } - $ipaddrlist += $ipaddr; - } - - if($ipaddrlist -ne $null) - { - if($ipaddrlist.Length -gt $dnsServerColWidth) - { - $ipaddrlist = $ipaddrlist.Substring(0, $dnsServerColWidth - 3); - $ipaddrlist += "..."; - } - $dnsConfig += "{" + $ipaddrlist + "}"; - } - $dnsConfig += "`r`n"; - $outputStr += $dnsConfig; - $dnsConfig = $null; - } - } - $outputStr; - - - - - - - - - - - VpnConnectionProxy_List - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionProxy - - - - - - - AutoDetect - - - AutoConfigurationScript - - - ProxyServer - - - BypassProxyForLocal - - - ExceptionPrefix - - - - - - - - VpnConnectionProxy_Table - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionProxy - - - - - 20 - - - 40 - - - 40 - - - 20 - - - 40 - - - - - - - AutoDetect - - - AutoConfigurationScript - - - ProxyServer - - - BypassProxyForLocal - - - ExceptionPrefix - - - - - - - - VpnConnectionProxy_Wide - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionProxy - - - - - - ProxyServer - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Types.ps1xml b/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Types.ps1xml deleted file mode 100644 index bc9f758..0000000 --- a/newton-cn/bin/v1.0/Modules/VpnClient/VpnClientPSProvider.Types.ps1xml +++ /dev/null @@ -1,272 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#VpnConnection - - - EapConfigXmlStream - - [OutputType([System.Xml.XmlDocument])] - param() - [System.Xml.XmlDocument]($this.PSBase.CimInstanceProperties['EapConfigXmlStream'].value) - - - param([System.Xml.XmlDocument]$value) - $this.PSBase.CimInstanceProperties['EapConfigXmlStream'].value = $value - - - - VpnConfigurationXml - - [OutputType([System.Xml.XmlDocument])] - param() - [System.Xml.XmlDocument]($this.PSBase.CimInstanceProperties['VpnConfigurationXml'].value) - - - param([System.Xml.XmlDocument]$value) - $this.PSBase.CimInstanceProperties['VpnConfigurationXml'].value = $value - - - - IPSecCustomPolicy - - [OutputType([System.String[]])] - param() - $output = @() - foreach ($range in $this.PSBase.CimInstanceProperties['IPSecCustomPolicy'].value) - { - $output += $range - } - if ($output.Count -gt 0) - {,(@($output))} - else - {$null} - - - - MachineCertificateIssuerFilter - - [OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])] - param() - [System.Security.Cryptography.X509Certificates.X509Certificate2]($this.PSBase.CimInstanceProperties['MachineCertificateIssuerFilter'].Value) - - - param([System.Security.Cryptography.X509Certificates.X509Certificate2]$value) - $this.PSBase.CimInstanceProperties['MachineCertificateIssuerFilter'].Value = $value.RawData - - - - MachineCertificateEKUFilter - - [OutputType([System.String[]])] - param() - $output = @() - foreach ($range in $this.PSBase.CimInstanceProperties['MachineCertificateEKUFilter'].value) - { - $output += $range - } - if ($output.Count -gt 0) - {,(@($output))} - else - {$null} - - - - - - Microsoft.Management.Infrastructure.CimInstance#ThirdPartyVpnConnection - - - CustomConfiguration - - [OutputType([System.Xml.XmlDocument])] - param() - [System.Xml.XmlDocument]($this.PSBase.CimInstanceProperties['CustomConfiguration'].value) - - - param([System.Xml.XmlDocument]$value) - $this.PSBase.CimInstanceProperties['CustomConfiguration'].value = $value - - - - VpnConfigurationXml - - [OutputType([System.Xml.XmlDocument])] - param() - [System.Xml.XmlDocument]($this.PSBase.CimInstanceProperties['VpnConfigurationXml'].value) - - - param([System.Xml.XmlDocument]$value) - $this.PSBase.CimInstanceProperties['VpnConfigurationXml'].value = $value - - - - - - Microsoft.Management.Infrastructure.CimInstance#EapConfiguration - - - EapConfigXmlStream - - [OutputType([System.Xml.XmlDocument])] - param() - [System.Xml.XmlDocument]($this.PSBase.CimInstanceProperties['EapConfigXmlStream'].value) - - - param([System.Xml.XmlDocument]$value) - $this.PSBase.CimInstanceProperties['EapConfigXmlStream'].value = $value - - - - - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionIPsecConfiguration - - - AuthenticationTransformConstants - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.AuthenticationTransformConstants])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.AuthenticationTransformConstants]($this.PSBase.CimInstanceProperties['AuthenticationTransformConstants'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.AuthenticationTransformConstants]$value) - $this.PSBase.CimInstanceProperties['AuthenticationTransformConstants'].Value = [System.Uint32]$value - - - - CipherTransformConstants - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.CipherTransformConstants])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.CipherTransformConstants]($this.PSBase.CimInstanceProperties['CipherTransformConstants'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.CipherTransformConstants]$value) - $this.PSBase.CimInstanceProperties['CipherTransformConstants'].Value = [System.Uint32]$value - - - - DHGroup - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.DHGroup])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.DHGroup]($this.PSBase.CimInstanceProperties['DHGroup'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.DHGroup]$value) - $this.PSBase.CimInstanceProperties['DHGroup'].Value = [System.Uint32]$value - - - - EncryptionMethod - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.EncryptionMethod])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.EncryptionMethod]($this.PSBase.CimInstanceProperties['EncryptionMethod'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.EncryptionMethod]$value) - $this.PSBase.CimInstanceProperties['EncryptionMethod'].Value = [System.Uint32]$value - - - - IntegrityCheckMethod - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.IntegrityCheckMethod])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.IntegrityCheckMethod]($this.PSBase.CimInstanceProperties['IntegrityCheckMethod'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.IntegrityCheckMethod]$value) - $this.PSBase.CimInstanceProperties['IntegrityCheckMethod'].Value = [System.Uint32]$value - - - - PfsGroup - - [OutputType([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.PfsGroup])] - param() - [Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.PfsGroup]($this.PSBase.CimInstanceProperties['PfsGroup'].Value) - - - param([Microsoft.Powershell.Cmdletization.GeneratedTypes.VpnConnectionIPsecConfiguration.PfsGroup]$value) - $this.PSBase.CimInstanceProperties['PfsGroup'].Value = [System.Uint32]$value - - - - - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerApplication - - - ApplicationID - - [OutputType([System.String])] - param() - $output = @() - foreach($range in $this.PSBase.CimInstanceProperties['ApplicationID'].Value) - { - $output += $range - } - if ($output.Count -gt 0) - {,(@($output))} - else - {$null} - - - - - - Microsoft.Management.Infrastructure.CimInstance#VpnConnectionTriggerDnsConfiguration - - - DnsIPAddress - - [OutputType([System.String])] - param() - $output = @() - foreach($range in $this.PSBase.CimInstanceProperties['DnsIPAddress'].Value) - { - $output += $range - } - if ($output.Count -gt 0) - {,(@($output))} - else - {$null} - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/RemoteAccess/Client/MSFT_NetRoute - - - AddressFamily - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.AddressFamily]($this.PSBase.CimInstanceProperties['AddressFamily'].Value) - - - param($newValue) - $this.PSBase.CimInstanceProperties['AddressFamily'].Value = [System.UInt16][Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetRoute.AddressFamily]$newValue - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDriverTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDriverTask_v1.0.cdxml deleted file mode 100644 index bec5302..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDriverTask_v1.0.cdxml +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - 1.0 - OdbcDriver - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDsnTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDsnTask_v1.0.cdxml deleted file mode 100644 index 5adcd4a..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcDsnTask_v1.0.cdxml +++ /dev/null @@ -1,484 +0,0 @@ - - - - - - - - - - - 1.0 - OdbcDsn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - - - - - - - - - - User - System - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - User - System - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - User - System - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - User - System - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcPerfCounterTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcPerfCounterTask_v1.0.cdxml deleted file mode 100644 index b2b24c3..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_OdbcPerfCounterTask_v1.0.cdxml +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - - - - - 1.0 - OdbcPerfCounter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_WdacBidTraceTask_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/Wdac/MSFT_WdacBidTraceTask_v1.0.cdxml deleted file mode 100644 index 72e32c6..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/MSFT_WdacBidTraceTask_v1.0.cdxml +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - - - - - - 1.0 - WdacBidTrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32-bit - 64-bit - All - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.format.ps1xml b/newton-cn/bin/v1.0/Modules/Wdac/Wdac.format.ps1xml deleted file mode 100644 index 45b7f51..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.format.ps1xml +++ /dev/null @@ -1,686 +0,0 @@ - - - - - - - - - - - - - - Formatting For MSFT_OdbcKeyValuePair (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcKeyValuePair - - - - - - - ParentKey - - - Key - - - Value - - - - - - - - - Formatting For MSFT_OdbcKeyValuePair (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcKeyValuePair - - - - - 30 - - - - 30 - - - - 90 - - - - - - - - ParentKey - - - - Key - - - Value - - - - - - - - - - Formatting For MSFT_OdbcDriver (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDriver - - - - - - - Name - - - Platform - - - Attribute - - - - - - - - - Formatting For MSFT_OdbcDriver (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDriver - - - - - 40 - - - - - 15 - - - - 65 - - - - - - - - Name - - - Platform - - - Attribute - - - - - - - - - Formatting For MSFT_OdbcDriver (Custom View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDriver - - - - - - FmtAttribute - - - - - - 4 - - - - - [String]::Format( "{0,-20}= {1}", $_.Name, $_.Value ) - - - - - - - - - - - - - - - - - - - - [String]::Format( "{0,-11}: {1}", "Name", $_.Name ) - - - - - - - [String]::Format( "{0,-11}: {1}", "Platform", $_.Platform ) - - - - - - - [String]::Format( "{0,-11}:", "Attribute" ) - - - - - - - Attribute - - FmtAttribute - - - - - - - - - - - Formatting For MSFT_OdbcDsn (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDsn - - - - - - - Name - - - DsnType - - - Platform - - - DriverName - - - Attribute - - - - - - - - - Formatting For MSFT_OdbcDsn (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDsn - - - - - 20 - - - - 15 - - - - 15 - - - 40 - - - 65 - - - - - - - - Name - - - DsnType - - - Platform - - - DriverName - - - Attribute - - - - - - - - - Formatting For MSFT_OdbcDsn (Custom View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDsn - - - - - - FmtAttribute - - - - - - 4 - - - - - [String]::Format( "{0,-20}= {1}", $_.Name, $_.Value ) - - - - - - - - - - - - - - - - - - - - [String]::Format( "{0,-11}: {1}", "Name", $_.Name ) - - - - - - - [String]::Format( "{0,-11}: {1}", "DsnType", $_.DsnType ) - - - - - - - [String]::Format( "{0,-11}: {1}", "Platform", $_.Platform ) - - - - - - - [String]::Format( "{0,-11}: {1}", "DriverName", $_.DriverName ) - - - - - - - [String]::Format( "{0,-11}:", "Attribute" ) - - - - - - - Attribute - - FmtAttribute - - - - - - - - - - - Formatting For MSFT_OdbcPerfCounter (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcPerfCounter - - - - - - - Platform - - - IsEnabled - - - - - - - - - Formatting For MSFT_OdbcPerfCounter (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcPerfCounter - - - - - - 15 - - - 20 - - - - - - - - Platform - - - IsEnabled - - - - - - - - - Formatting For MSFT_OdbcPerfCounter (Wide View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcPerfCounter - - - - - - - Platform - - - - - - - - - - Formatting For MSFT_WdacBidTrace (List View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_WdacBidTrace - - - - - - - TargetScope - - - TargetProcessId - - - Platform - - - IsEnabled - - - - - - - - - Formatting For MSFT_WdacBidTrace (Table View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_WdacBidTrace - - - - - 50 - - - 18 - - - - 15 - - - 20 - - - - - - - - TargetScope - - - TargetProcessId - - - Platform - - - IsEnabled - - - - - - - - - Formatting For MSFT_WdacBidTrace (Wide View) - - Microsoft.Management.Infrastructure.CimInstance#MSFT_WdacBidTrace - - - - - - - TargetScope - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.psd1 b/newton-cn/bin/v1.0/Modules/Wdac/Wdac.psd1 deleted file mode 100644 index ecebc74..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.psd1 +++ /dev/null @@ -1,31 +0,0 @@ -@{ - GUID = '78a7a38c-a446-43fe-b643-9abacf843112' - Author = 'Microsoft Corporation' - CompanyName = 'Microsoft Corporation' - Copyright = '(C) Microsoft Corporation. All rights reserved.' - NestedModules = @('MSFT_OdbcDriverTask_v1.0.cdxml', - 'MSFT_OdbcDsnTask_v1.0.cdxml', - 'MSFT_OdbcPerfCounterTask_v1.0.cdxml', - 'MSFT_WdacBidTraceTask_v1.0.cdxml') - FormatsToProcess = @('Wdac.format.ps1xml') - TypesToProcess = @('Wdac.types.ps1xml') - ModuleVersion = '1.0.0.0' - AliasesToExport = @() - - FunctionsToExport = @('Get-OdbcDriver', - 'Set-OdbcDriver', - 'Get-OdbcDsn', - 'Add-OdbcDsn', - 'Set-OdbcDsn', - 'Remove-OdbcDsn', - 'Get-OdbcPerfCounter', - 'Enable-OdbcPerfCounter', - 'Disable-OdbcPerfCounter', - 'Get-WdacBidTrace', - 'Enable-WdacBidTrace', - 'Disable-WdacBidTrace') - - PowerShellVersion = '5.1' - HelpInfoUri = 'http://go.microsoft.com/fwlink/?linkid=390844' - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.types.ps1xml b/newton-cn/bin/v1.0/Modules/Wdac/Wdac.types.ps1xml deleted file mode 100644 index fcc0d4b..0000000 --- a/newton-cn/bin/v1.0/Modules/Wdac/Wdac.types.ps1xml +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDriver - - - Attribute - - $h = @{}; - foreach ($keyValue in $this.KeyValuePair) - { - $h.Add( $keyValue.Key, $keyValue.Value ) - } - $h - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_OdbcDsn - - - Attribute - - $h = @{}; - foreach ($keyValue in $this.KeyValuePair) - { - $h.Add( $keyValue.Key, $keyValue.Value ) - } - $h - - - - - PropertyValue - - $PropArray = @(); - foreach ($keyValue in $this.KeyValuePair) - { - $PropArray = $PropArray + ($keyValue.Key + "=" + $keyValue.Value) - } - $PropArray - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_WdacBidTrace - - - - TargetScope - - switch ($this.Mode) - { - 1 {$this.PathOrFolder} - 2 {$this.PathOrFolder + "\*"} - 3 {"*"} - default {"Unknown Mode"} - } - - - - - TargetProcessId - - if ($this.ProcessId -eq [System.UInt32]::maxvalue) - { - "*" - } - else - { - [System.String] $this.ProcessId - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Whea/Microsoft.Windows.Whea.WheaMemoryPolicy.dll b/newton-cn/bin/v1.0/Modules/Whea/Microsoft.Windows.Whea.WheaMemoryPolicy.dll deleted file mode 100644 index c6adc434e7adaa078578fc57e1b24d8438190a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 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 Q(P8JL9Q;?{|6BzA8$!P-MF0Q* diff --git a/newton-cn/bin/v1.0/Modules/Whea/Whea.psd1 b/newton-cn/bin/v1.0/Modules/Whea/Whea.psd1 deleted file mode 100644 index 187bfd1..0000000 --- a/newton-cn/bin/v1.0/Modules/Whea/Whea.psd1 +++ /dev/null @@ -1,47 +0,0 @@ -# -# Module manifest for module 'WheaPolicyManagement' -# -# Generated by: Microsoft Corporation -# -# Generated on: 2/14/2011 -# - -@{ - -# These modules will be processed when the module manifest is loaded. -NestedModules = 'Microsoft.Windows.Whea.WheaMemoryPolicy' - -# This GUID is used to uniquely identify this module. -GUID = 'b7bf4d74-f837-430e-810f-234f26021253' - -# The author of this module. -Author = 'Microsoft Corporation' - -# The company or vendor for this module. -CompanyName = 'Microsoft Corporation' - -# The copyright statement for this module. -Copyright = '© Microsoft Corporation. All rights reserved.' - -# A description of this module (not be used because module manifest is not being localized). -# Description = 'Whea WMI Module for Memory Policy' - -# The version of this module. -ModuleVersion = '2.0.0.0' - -# The minimum version of PowerShell needed to use this module. -PowerShellVersion = '5.1' - -# The CLR version required to use this module. -CLRVersion = '4.0' - -# Request fwlink from UA -HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390848" - -# Cmdlets to Export -CmdletsToExport="Get-WheaMemoryPolicy", "Set-WheaMemoryPolicy" - -# PowerShell editions this module is compatible with -CompatiblePSEditions = @('Core', 'Desktop') -} - diff --git a/newton-cn/bin/v1.0/Modules/WindowsDeveloperLicense/WindowsDeveloperLicense.psd1 b/newton-cn/bin/v1.0/Modules/WindowsDeveloperLicense/WindowsDeveloperLicense.psd1 deleted file mode 100644 index e6cc6bf..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsDeveloperLicense/WindowsDeveloperLicense.psd1 +++ /dev/null @@ -1,15 +0,0 @@ -@{ - GUID = "{8AB5FE0D-DB4A-49F2-93A3-040CF12840CC}" - Author = "Microsoft Corporation" - CLRVersion = "4.0" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - AliasesToExport = @() - FunctionsToExport = @() - CmdletsToExport = "Get-WindowsDeveloperLicense", "Unregister-WindowsDeveloperLicense", "Show-WindowsDeveloperLicenseRegistration" - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=285578" - PowerShellVersion = '5.1' - ModuleVersion = "1.0.0.0" - ModuleToProcess = "Microsoft.Windows.DeveloperLicense.Commands" - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/WindowsErrorReporting/Microsoft.WindowsErrorReporting.PowerShell.dll b/newton-cn/bin/v1.0/Modules/WindowsErrorReporting/Microsoft.WindowsErrorReporting.PowerShell.dll deleted file mode 100644 index 5a3f7a61ed62799870ef451214f38b34810df147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 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 - - - - PrintSetting - - Microsoft.WindowsSearch.Commands.PrintSetting - - - - - - - Setting - - - Value - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/WindowsSearch/WindowsSearch.psd1 b/newton-cn/bin/v1.0/Modules/WindowsSearch/WindowsSearch.psd1 deleted file mode 100644 index c36c193..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsSearch/WindowsSearch.psd1 +++ /dev/null @@ -1,13 +0,0 @@ -@{ -GUID="{562C6233-EAEE-4876-B36C-D6B1F256D4E6}" -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -ModuleVersion="1.0.0.0" -PowerShellVersion="5.1" -CLRVersion="4.0" -NestedModules="Microsoft.WindowsSearch.Commands" -HelpInfoUri= "https://go.microsoft.com/fwlink/?LinkId=280243" -CmdletsToExport="Get-WindowsSearchSetting","Set-WindowsSearchSetting" -CompatiblePSEditions=@("Core","Desktop") -} diff --git a/newton-cn/bin/v1.0/Modules/WindowsSearch/ko/Microsoft.WindowsSearch.Commands.Resources.dll b/newton-cn/bin/v1.0/Modules/WindowsSearch/ko/Microsoft.WindowsSearch.Commands.Resources.dll deleted file mode 100644 index b72756de9e39a75764f1aeb33e1b61341369c28c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 zcmeHLeNa@_6+aIJ6~EAGWE^9j@naBh-4#$VYCyhX0zz4pXtiP4eZr2*KKtITf*H+5 z@uSgEv?7c}izBwRF-9#;&}dS}G*ug`ZJjoQVDk+;h)8_k7*UIpi&_rd~wU8~xrrqGpWT()91cKLIQcdg|05YU+1sOtX-CY0UgG zw<@ksvP-fI92h+=#JV7hC|Br3`6a=n;nO~* zh%xSDcc1A1ag_E=frg%T=eWc-$q4 z;zCJL-LiL9vc<|jiDHJ|qZIjw#2Jb+G1;`H*Z=rzjnw7U*bQs$_5d*<689nY*4ghz`q5YgT5NQ3B4V08e~;eK4sH+zi5OopU+Z_~^Sm@s~lMcH>_L(kWf}_e@%Z z%_Wpi%kZ-c+v2kzp#vxn7IMMesUPkJCYabKn$THxI8g z1mM8!&YKOy)~f>1fQ7m|E}#^uVMGy_6@((G0f>3B+rv;sx}%y`_BUGKWW%00iF*1ozjAo#l84M`3uD*HPk; za%HE(hxaK zjL-VhUpFd5VXFX5wY_j)Lk$!P`w^`4=xSzHhK`4MwJMl)-C=FdAvlUHW!xCuL^|3W z&Hs%!@ec?$jv6EM;fc^Cj19?UcPx_(vxkDZ{_y-HYv!JHiv!>K^jJcBi@R*)3AyNC z+@Ch3oE&<2g7?E$F1ey_Udd8d#??+3_r-+Ks~ZknkKA$c)_XApzq?lPdi2!N z*5>?Ae)Y46Q){mbzR+~D*q4yHDCXMrV;6@^ZQd2T=F7g8_B9oUT7ugS$kk6z`s+>Q zc6N5+z4qnrZlgK&=jRB7M<0!IyOo?AC0Ubfsf>xl<4Sn;iN>xax`J^l!*-v7JFWtx zCD@9TjK(golM67Xj$?Bc%+18;!@QB_b3AehMs9ctVfXZneaFg68M2b;@#Hz&Uea@KNeY<*+39!^(>h2WL;q(M5cKx}HVP z?E&8p7veb(znF&i2N_VfUFnq!a3K=nm+;M^LO^qoj?Ke-F231-xt;0#*{Z zJkKu(k0bO|qps)sXKtC82;j;|VYZ%lOW^56;w|fB)-My1UF4luTUqb!5ODb$}(LJ(q$^q2e4)&{O9eGJ$AVI>EPcrf*uw>?8C?H8)yO1$SY%Jegk!TtkPFn F;6E>K;XD8U diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdate.psd1 b/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdate.psd1 deleted file mode 100644 index 0b79319..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdate.psd1 +++ /dev/null @@ -1,40 +0,0 @@ -# -# Module manifest for module 'WindowsUpdate' -# - -@{ - -# Version number of this module. -ModuleVersion = '1.0.0.0' - -# ID used to uniquely identify this module -GUID = 'db6155f2-9e89-45cf-876a-f15141294f5b' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = '(c) Microsoft Corporation. All rights reserved.' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# List of all modules packaged with this module -ModuleList = @('.\WindowsUpdateLog.psm1') - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @('.\WindowsUpdateLog.psm1') - -# Functions to export from this module -FunctionsToExport = @('Get-WindowsUpdateLog') -AliasesToExport = @() -CmdletsToExport = @() - -# HelpInfo URI of this module -HelpInfoURI = 'https://go.microsoft.com/fwlink/?LinkId=614995' - -CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdateLog.psm1 b/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdateLog.psm1 deleted file mode 100644 index c1bfadc..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdate/WindowsUpdateLog.psm1 +++ /dev/null @@ -1,515 +0,0 @@ -# -# Copyright (c) Microsoft Corporation. All rights reserved. -# -# Version: 1.0.0.0 -# Revision 2015.05.26 -# - -# -------------------------------------------------------------------------------------------------------------------------- -# CONSTANTS -# -------------------------------------------------------------------------------------------------------------------------- -$TIMESTAMP_FORMAT = "yyyy/MM/dd HH:mm:ss.fffffff" - -$WORKDIR = "$env:TEMP\WindowsUpdateLog" -$SYM_CACHE = "$WORKDIR\SymCache" -$SYSTEM32 = "$env:windir\System32" -$DEBUG_LOG_PATH = "$WORKDIR\debug.log" - -$BINLIST = @( - "wuaueng.dll", - "wuapi.dll", - "wuuhext.dll", - "wuuhmobile.dll", - "wuautoappupdate.dll", - "storewuauth.dll", - "wuauclt.exe") - -# TraceRpt.exe fails with "data area passed in too small" error which is really just insufficient buffer error. It happens -# when the total size of ETLs we're passing in is too huge. We're going to batch it every 10 ETLs to workaround the issue. -$MAX_ETL_PER_BATCH = 10 - -# Column headers in CSV produced by tracerpt.exe -$CSV_HEADER= "EventName, Type, Event ID, Version, Channel, Level, Opcode, Task, Keyword, PID, TID, ProcessorNumber, InstanceID, ParentInstanceID, ActivityID, RelatedActivityID, ClockTime, KernelTime, UserTime, UserData, Function, LogMessage, Ignore1, Ignore2, IgnoreGuid1, SourceLine, IgnoreTime, Ignore3, Category, LogLevel, TimeStamp, IgnoreGuid2" - -# -------------------------------------------------------------------------------------------------------------------------- -# FUNCTIONS -# -------------------------------------------------------------------------------------------------------------------------- - -# -# Given a path to single ETL file or a directory containing multiple ETL files, return a list containing the fullpaths of the ETLs. -# -function GetListOfETLs -{ - Param( - [string[]] $Paths = $(throw "'Paths' parameter is required.") - ) - - Write-Verbose "Gathering ETL files ..." - - $etlList = New-Object System.Collections.Generic.List[System.String] - - foreach ($path in $Paths) - { - # If user passes in a directory as $ETLPath, grabs all the ETLs in that folder. - if (Test-Path $path -PathType Container) - { - $etls = Get-ChildItem $path -Filter WindowsUpdate*.etl - - if ($etls.Length -eq 0) - { - throw "File not found: No Windows Update ETL file under $path" - } - - foreach ($etl in $etls) - { - $etlList.Add($etl.FullName.Trim()) - } - } - else - { - if (!(Test-Path $path)) - { - throw "File not found: $path" - } - - $etlList.Add($path.Trim()) - } - } - - if ($etlList.Count -gt 1) - { - Write-Verbose "Sorting ETLs numerically ..." - - # Pad the last decimal before .etl in WindowsUpdate.20150609.225042.704.1.etl so ETLs can be sorted numerically. - $etlList = $etlList | Sort-Object { [regex]::Replace($_, '\d+(?=.etl)', { $args[0].Value.PadLeft(10) }) } - } - - Write-Verbose "Found $($etlList.Count) ETLs." - - return $etlList -} - -# -# Given a list of ETLs, decode them into XML or CSV file using TraceRpt.exe -# -function DecodeETL -{ - Param( - [System.Collections.Generic.List[System.String]] $ETLList = $(throw "'ETLList' parameter is required."), - [string] $OutPath = $(throw "'OutPath' parameter is required."), - [ValidateSet('XML', 'CSV')] $Type = $(throw "'Type' parameter is required.") - ) - - Write-Verbose "Decoding $($ETLList.Count) ETLs to $OutPath using $Type processing ..." - - if (Test-Path $OutPath) - { - Remove-Item $OutPath -Force -ErrorAction Stop - } - - # - # Build tracerpt arguments. - # - $args = New-Object System.Collections.Generic.List[System.String] - - # ETL files - $args.AddRange($ETLList) - - # output format - $args.Add("-of") - $args.Add($Type) - - # output file - $args.Add("-o") - $args.Add($OutPath) - - # binary list - $binaries = "" - - foreach ($bin in $BINLIST) - { - $binaries = "$binaries$SYSTEM32\$bin;" - } - - $args.Add("-i") - $args.Add("$binaries") - - # no prompt - $args.Add("-y") - - # Switch directory to SymCache so that tracerpt.exe writes the TMF and MOF files there. - if (!(Test-Path $SYM_CACHE)) - { - New-Item -ItemType Directory -Path $SYM_CACHE -ErrorAction Stop - } - - $popd = Get-Location - Set-Location $SYM_CACHE - - # - # Decode ETLs to XML - # - $start = Get-Date - - & "tracerpt.exe" $args | Out-Default - - Write-Verbose "Done. Elapsed: $((Get-Date).Subtract($start).TotalMilliseconds) ms." - - Set-Location $popd - - if ($LastExitCode -ne 0) - { - throw "Failed to decode ETLs. TraceRpt.exe returned error= $LastExitCode" - } - - if (!(Test-Path $OutPath)) - { - throw "Failed to decode ETLs. TraceRpt.exe failed to produce $OutPath" - } -} - -# -# Given an XML file produced by tracerpt.exe, convert it to user friendly text log. -# -function ConvertXmlToLog -{ - Param( - [string] $XmlPath = $(throw "'XmlPath' parameter is required."), - [string] $LogPath = $(throw "'LogPath' parameter is required.") - ) - - Write-Verbose "Converting $XmlPath to $LogPath ..." - - if (Test-Path $LogPath) - { - Remove-Item $LogPath -Force -ErrorAction Stop - } - - [xml] $xml = Get-Content $XmlPath - - $writer = New-Object System.IO.StreamWriter $LogPath - $start = Get-Date - - try - { - $nodeNum = 0 - - $xml.Events.Event | ForEach-Object { - - $row = $_ - - try - { - $systemNode = $_.System - $providerNode = $systemNode.Provider - $providerName = $systemNode.Provider.Name - - if ($providerNode -ne $null -And $providerName -eq "WUTraceLogging") - { - $eventDataNode = $_.EventData - $executionNode = $systemNode.Execution - [DateTime] $datetime = $systemNode.TimeCreated.SystemTime - - $keywordNode = $_.RenderingInfo - - - # Log columns: - # Time ProcessID ThreadID Component Message - $writer.WriteLine("$($datetime.ToString($TIMESTAMP_FORMAT)) $($executionNode.ProcessID.ToString().PadRight(5)) $($executionNode.ThreadID.ToString().PadRight(5)) $($keywordNode.Task.ToString().PadRight(15)) $($eventDataNode.Data.'#text')") - } - } - catch - { - # Log exception, eat it, and process the rest of the log. - Write-Warning "Unable to process node $nodeNum." - - "Failed to process line:$nodeNum of $XmlPath`n$row`n$_`n---" | Out-File $DEBUG_LOG_PATH -Encoding ascii -Append - } - - $nodeNum++ - } # foreach - } - finally - { - $writer.Close() - } - - Write-Verbose "Done. Elapsed: $((Get-Date).Subtract($start).TotalMilliseconds) ms." -} - -# -# Given a CSV file produced by tracerpt.exe, convert it to user friendly text log. -# -function ConvertCsvToLog -{ - Param( - $CsvPath = $(throw "'CsvPath' parameter is required."), - $LogPath = $(throw "'LogPath' parameter is required.") - ) - - Write-Verbose "Converting $CsvPath to $LogPath ..." - - if (Test-Path $LogPath) - { - Remove-Item $LogPath -Force -ErrorAction Stop - } - - $csvText = Get-Content $CsvPath - $csvText[0] = $CSV_HEADER - - $csv = ConvertFrom-Csv $csvText - - $writer = New-Object System.IO.StreamWriter $LogPath - $start = Get-Date - - try - { - $lineNum = 0 - - $csv | ForEach-Object { - - $row = $_ - - try - { - if ($_.EventName -ne "EventTrace" -And !($_.EventName.StartsWith("{"))) - { - [DateTime] $datetime = [DateTime]::FromFileTimeUTC($_.ClockTime).ToLocalTime() - - # convert hex string to decimals - $processId = $_.PID -as [int] - $threadId = $_.TID -as [int] - - # Log columns: - # Time ProcessID ThreadID Component Message - $writer.WriteLine("$($datetime.ToString($TIMESTAMP_FORMAT)) $($processId.ToString().PadRight(5)) $($threadId.ToString().PadRight(5)) $($_.EventName.PadRight(15)) $($_.UserData)") - } - } - catch - { - # Log exception, eat it, and process the rest of the log. - Write-Warning "Unable to process line $lineNum." - - "Unable to process line:$lineNum of $CsvPath`n$row`n$_`n---" | Out-File $DEBUG_LOG_PATH -Encoding ascii -Append - } - - $lineNum++ - } # foreach - } - finally - { - $writer.Close() - } - - Write-Verbose "Done. Elapsed: $((Get-Date).Subtract($start).TotalMilliseconds) ms." -} - -function FlushWindowsUpdateETLs -{ - Write-Verbose "Flushing Windows Update ETLs ..." - - Stop-Service usosvc -ErrorAction Stop - Stop-Service wuauserv -ErrorAction Stop - - Write-Verbose "Done." -} - -# -# Given an ETL path, convert the ETL file(s) into text log. -# -function ConvertETLsToLog -{ - Param( - [string[]] $ETLPaths = $(throw "'etlPaths' parameter is required."), - [string] $LogPath = $(throw "'LogPath' parameter is required."), - [ValidateSet('XML', 'CSV')] $Type = $(throw "'type' parameter is required.") - ) - - if ($ETLPaths.Count -gt 1) - { - "`nMerging and converting $($ETLPaths.Count) ETLs into $LogPath ..." | Out-Default - } - elseif ($ETLPaths.Count -eq 1) - { - "`nConverting $($ETLPaths[0]) into $LogPath ..." | Out-Default - } - else - { - throw "No Windows Update ETL file found." - } - - $start = Get-Date - - [System.Collections.Generic.List[System.String]] $etlList = GetListOfETLs -path $ETLPaths - # Create Working Directory - New-Item -Path $WORKDIR -ItemType Directory -ErrorAction SilentlyContinue | Out-Null - - $tempFilePath = "$WORKDIR\wuetl.$Type.tmp" - $tempLogPath = "$WORKDIR\wuetl.log.tmp" - - Remove-Item "$tempFilePath.*" -Force -ErrorAction SilentlyContinue | Out-Null - Remove-Item "$tempLogPath.*" -Force -ErrorAction SilentlyContinue | Out-Null - Remove-Item $DEBUG_LOG_PATH -Force -ErrorAction SilentlyContinue | Out-Null - - $processed = 0; - $tempFileCount = 0 - - # Pad tempFileCount so files can be sorted numerically. - $NumFormat = "{0:00000}" - - while ($processed -lt $etlList.Count) - { - $remaining = $etlList.Count - $processed - - $numberedTempFile = "$tempFilePath.$NumFormat" -f $tempFileCount - $numberedLogFile = "$tempLogPath.$NumFormat" -f $tempFileCount - - if ($remaining -ge $MAX_ETL_PER_BATCH) - { - DecodeETL -ETLList $etlList.GetRange($processed, $MAX_ETL_PER_BATCH) -OutPath $numberedTempFile -Type $Type - $processed += $MAX_ETL_PER_BATCH - } - else - { - DecodeETL -ETLList $etlList.GetRange($processed, $remaining) -OutPath $numberedTempFile -Type $Type - $processed += $remaining - } - - if ($Type -eq 'XML') - { - ConvertXmlToLog -XmlPath $numberedTempFile -LogPath $numberedLogFile - } - else - { - ConvertCsvToLog -CsvPath $numberedTempFile -LogPath $numberedLogFile - } - - $tempFileCount++ - } - - if ($tempFileCount -gt 1) - { - Write-Verbose "Merging all temporary logs into one ..." - Get-Content "$tempLogPath.*" | Out-File $LogPath -Encoding ascii - } - else - { - $src = "$tempLogPath.$NumFormat" -f 0 - Copy-Item -Path $src -Destination $LogPath -ErrorAction Stop - } - - # Not removing $tempFilePath.* so users can use XML/CSVs to do more fancy stuff should they wish. - Remove-Item "$tempLogPath.*" -ErrorAction SilentlyContinue | Out-Null - - Write-Verbose "Total elapsed: $((Get-Date).Subtract($start).TotalMilliseconds) ms." - - "`nWindowsUpdate.log written to $LogPath`n" | Out-Default -} - -#.ExternalHelp WindowsUpdateLog.psm1-help.xml -function Get-WindowsUpdateLog -{ - [CmdLetBinding( - SupportsShouldProcess = $true, - ConfirmImpact = 'High')] - Param( - [parameter( - ValueFromPipeline = $true, - ValueFromPipelineByPropertyName = $true, - Position = 0)] - [Alias('PsPath')] - [string[]] $ETLPath = @("$env:windir\logs\WindowsUpdate"), - - [parameter( - Position = 1)] - [string] $LogPath = "$([System.Environment]::GetFolderPath("Desktop"))\WindowsUpdate.log", - - [ValidateSet('CSV', 'XML')] - [string] $ProcessingType = 'CSV', - - [switch] $ForceFlush - ) - - begin - { - $etls = New-Object System.Collections.ArrayList - } - - process - { - # - # Handles pipeline input. For e.g. get-childitem C:\temp | get-windowsupdatelog - # - if ($_ -ne $null) - { - if ($_.PsPath -eq $null -or !(Test-Path $_.PsPath)) - { - throw "ETL file cannot be found or is invalid: $_" - } - - $etls.Add($_.FullName) | Out-Null - } - # - # Handles regular input. For e.g. get-windowsupdate.log C:\temp\WindowsUpdate1.etl, C:\temp\WindowsUpdate2.etl - # - else - { - foreach ($p in $ETLPath) - { - if (!(Test-Path $p)) - { - throw "File not found: $p" - } - $etls.Add($p) | Out-Null - } - } - } - - end - { - if ($ForceFlush) - { - if ($PSCmdlet.ShouldProcess("$env:COMPUTERNAME", "Stopping Update Orchestrator and Windows Update services")) - { - FlushWindowsUpdateETLs - } - else - { - return - } - } - - # The rest of the function doesn't support -WhatIf, so just bail out if -WhatIf is specified - if ($WhatIfPreference) - { - return - } - - # - # Make sure we have permission to write log file to requested path. - # - $logDir = Split-Path -Parent $LogPath - - if (!(Test-Path $logDir)) - { - New-Item -Path $logDir -ErrorAction Stop - } - - try - { - "Checking write access" | Out-File -FilePath $LogPath -Encoding ascii - } - catch [System.UnauthorizedAccessException] - { - throw "No permission to write to $LogPath" - } - - # - # Do work now. - # - - ConvertETLsToLog -ETLPaths $etls -LogPath $LogPath -Type $ProcessingType - } -} - -Export-ModuleMember -Function Get-WindowsUpdateLog diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.cdxml b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.cdxml deleted file mode 100644 index fba0a7f..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.cdxml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - 1.0.0.1 - WUOperationsSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.psm1 b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.psm1 deleted file mode 100644 index 9518a31..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUOperations.psm1 +++ /dev/null @@ -1,32 +0,0 @@ -# This function's purpose is to take the output of the MI provider, an array of fixed size, and convert it to an array list of non-fixed size. -# The reason for this is so that a caller of this module is able to easily select which updates they wish to download & install -function Start-WUScan -{ - param - ( - [parameter(Mandatory = $false)] - $SearchCriteria - ) - - If($SearchCriteria -eq $null) - { - $scanres = Invoke-CimMethod -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperations -MethodName ScanForUpdates - } - else - { - $scanres = Invoke-CimMethod -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperations -MethodName ScanForUpdates -Arguments @{SearchCriteria=$SearchCriteria} - } - - if($scanres.ReturnValue -eq 0) - { - $arrlist = New-Object System.Collections.ArrayList - $arrlist.AddRange($scanres.Updates) | out-null - - # Comma is added to prevent powershell from converting return to an array - return ,$arrlist - } - else - { - Write-Error "Scan hit error: $scanres.ReturnValue" - } -} \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUSettings.cdxml b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUSettings.cdxml deleted file mode 100644 index 2f26a8d..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUSettings.cdxml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - 1.0.0.1 - WUSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.cdxml b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.cdxml deleted file mode 100644 index 2fcfe90..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.cdxml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - 1.0.0.1 - WUUpdate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.format.ps1xml b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.format.ps1xml deleted file mode 100644 index 21550a3..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.format.ps1xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - MSFT_WUUpdate_ListView - - Microsoft.Management.Infrastructure.CimInstance#root\microsoft\windows\windowsupdate\MSFT_WUUpdate - Microsoft.Management.Infrastructure.CimInstance#MSFT_WUUpdate - - - - - - - - Title - - - - Description - - - - KBArticleID - - - - MsrcSeverity - - - - RevisionNumber - - - - UpdateID - - - - - - - - MSFT_WUUpdate_TableView - - Microsoft.Management.Infrastructure.CimInstance#root\microsoft\windows\windowsupdate\MSFT_WUUpdate - Microsoft.Management.Infrastructure.CimInstance#MSFT_WUUpdate - - - - - - 25 - - - - 50 - - - - 15 - - - - 15 - - - - 10 - - - - 39 - - - - - - - Title - - - Description - - - KBArticleID - - - MsrcSeverity - - - RevisionNumber - - - UpdateID - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.types.ps1xml b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.types.ps1xml deleted file mode 100644 index 849d824..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/MSFT_WUUpdate.types.ps1xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/Microsoft/Windows/WindowsUpdate/MSFT_WUUpdate - - - UpdateID - - $this.PSBase.CimInstanceProperties['UpdateID'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['UpdateID'].Value = [String][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.UpdateID] $newValue - - - - RevisionNumber - - $this.PSBase.CimInstanceProperties['RevisionNumber'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['RevisionNumber'].Value = [UInt32][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.RevisionNumber] $newValue - - - - Title - - $this.PSBase.CimInstanceProperties['Title'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['Title'].Value = [String][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.Title] $newValue - - - - Description - - $this.PSBase.CimInstanceProperties['Description'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['Description'].Value = [System.String][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.Description] $newValue - - - - MsrcSeverity - - $this.PSBase.CimInstanceProperties['MsrcSeverity'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['MsrcSeverity'].Value = [System.String][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.MsrcSeverity] $newValue - - - - KBArticleID - - $this.PSBase.CimInstanceProperties['KBArticleID'].Value - - - param($newValue) - $this.PSBase.CimInstanceProperties['KBArticleID'].Value = [System.String][Microsoft.PowerShell.Cmdletization.GeneratedTypes.MSFT_WUUpdate.KBArticleID] $newValue - - - - - diff --git a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/WindowsUpdateProvider.psd1 b/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/WindowsUpdateProvider.psd1 deleted file mode 100644 index cb3eb79..0000000 --- a/newton-cn/bin/v1.0/Modules/WindowsUpdateProvider/WindowsUpdateProvider.psd1 +++ /dev/null @@ -1,47 +0,0 @@ -<#++ - -Copyright (c) 2011 Microsoft Corporation - -Module Name: - - WindowsUpdateProvider.psd1 - -Abstract: - - This module is the container module definition for the MSFT_WU* CIM - object CmdLets. - ---#> - -@{ - GUID = 'faed25e4-6939-439d-8c13-4778ac5ac8a7' - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "(c) Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390794" - ModuleVersion = "1.0.0.2" - PowerShellVersion = '5.1' - NestedModules = @( - 'MSFT_WUOperations.psm1', - 'MSFT_WUUpdate.cdxml', - 'MSFT_WUSettings.cdxml', - 'MSFT_WUOperations.cdxml' - ) - - TypesToProcess = @('MSFT_WUUpdate.types.ps1xml') - - FormatsToProcess = @('MSFT_WUUpdate.Format.ps1xml') - - FunctionsToExport = @( - # MSFT_WUSettings.cdxml - 'Get-WUAVersion', - 'Get-WULastInstallationDate', - 'Get-WULastScanSuccessDate', - 'Get-WUIsPendingReboot', - # MSFT_WUOperations.cdxml - 'Install-WUUpdates' - # MSFT_WUOperations.psm1 - 'Start-WUScan' - ) - CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSI.psd1 b/newton-cn/bin/v1.0/Modules/iSCSI/iSCSI.psd1 deleted file mode 100644 index 7f509f7..0000000 --- a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSI.psd1 +++ /dev/null @@ -1,27 +0,0 @@ -@{ - GUID = '53E1C251-4283-4B07-AB02-FC492C7AB8C5' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0.0.0' - PowerShellVersion = '3.0' - FormatsToProcess = @() - TypesToProcess = @() - NestedModules = @("iSCSIConnection.cdxml", "iSCSISession.cdxml", "iSCSITarget.cdxml", "iSCSITargetPortal.cdxml") - AliasesToExport = @() - FunctionsToExport = @( - 'Get-IscsiTargetPortal', - 'New-IscsiTargetPortal', - 'Remove-IscsiTargetPortal', - 'Update-IscsiTargetPortal', - 'Get-IscsiTarget', - 'Connect-IscsiTarget', - 'Disconnect-IscsiTarget', - 'Update-IscsiTarget', - 'Get-IscsiSession', - 'Register-IscsiSession', - 'Unregister-IscsiSession', - 'Get-IscsiConnection', - 'Set-IscsiChapSecret') - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390778" -} diff --git a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSIConnection.cdxml b/newton-cn/bin/v1.0/Modules/iSCSI/iSCSIConnection.cdxml deleted file mode 100644 index 6a5989e..0000000 --- a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSIConnection.cdxml +++ /dev/null @@ -1,93 +0,0 @@ - - - - 1.0 - IscsiConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSISession.cdxml b/newton-cn/bin/v1.0/Modules/iSCSI/iSCSISession.cdxml deleted file mode 100644 index 098a173..0000000 --- a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSISession.cdxml +++ /dev/null @@ -1,188 +0,0 @@ - - - - 1.0 - IscsiSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITarget.cdxml b/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITarget.cdxml deleted file mode 100644 index 4a0faa7..0000000 --- a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITarget.cdxml +++ /dev/null @@ -1,326 +0,0 @@ - - - - 1.0 - IscsiTarget - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITargetPortal.cdxml b/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITargetPortal.cdxml deleted file mode 100644 index 359b7b8..0000000 --- a/newton-cn/bin/v1.0/Modules/iSCSI/iSCSITargetPortal.cdxml +++ /dev/null @@ -1,270 +0,0 @@ - - - - 1.0 - IscsiTargetPortal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/PSEvents.dll b/newton-cn/bin/v1.0/PSEvents.dll deleted file mode 100644 index 51be1ce3ce6d36c2ff971ed8395075621a9b5086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55808 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 Ob13eg?7qEC>VE-W#5eW; diff --git a/newton-cn/bin/v1.0/PowerShellCore.format.ps1xml b/newton-cn/bin/v1.0/PowerShellCore.format.ps1xml deleted file mode 100644 index ab726c2ab585b6419576cc455d33f82455d5361b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206468 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 W;5}Ot-Z+v>#i_))+{MD?KmR{|*4sb; diff --git a/newton-cn/bin/v1.0/PowerShellTrace.format.ps1xml b/newton-cn/bin/v1.0/PowerShellTrace.format.ps1xml deleted file mode 100644 index ccf99cd..0000000 --- a/newton-cn/bin/v1.0/PowerShellTrace.format.ps1xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - System.Management.Automation.PSTraceSource - - System.Management.Automation.PSTraceSource - - - - - 8 - - - 20 - - - 20 - - - - - - - - Options - - - Name - - - Listeners - - - Description - - - - - - - - System.Management.Automation.PSTraceSource - - System.Management.Automation.PSTraceSource - - - - - - - Name - - - Description - - - Options - - - Listeners - - - Attributes - - - Switch - - - - - - - - diff --git a/newton-cn/bin/v1.0/Registry.format.ps1xml b/newton-cn/bin/v1.0/Registry.format.ps1xml deleted file mode 100644 index c6320f78119b9ac4dfc60238796d831fb1a07092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8458 zcmd6sYi}Dx6o%(B68~Yb`XMQe0~91wEv=kO8>^{f*=`F0giO3mBAg4c(~E$=4!qA9 zPj+^FiS5KtS@zD(<(&7tbLPyM@jrj3?umQvPF>$6?ybw*r5m^tcka&Icdp{TbXE6- zo{3t{+@b1wYCUsD)_UcJ?v2}U-&&6+?y>vSed1F0nd&w)=Ke?V0aM2v%YuQviGI7X z_d*u)_D1$l8mNqYXR@hlHqv%3K2G&M)W_SM*fVbNY$fi>c$)SG+imOBH~!)H$a-huJ#jngm8kAqvX}w5rvxg{9t#;Gup?*-HXv(g`p#vC zZ$Gj3U~yuzh0IGyI8^VxaHF?rjC9Q&_{s_z%JxjQ1$z(0$*IPAPGJy!1OB13U6^DT zd8X1(UbClXU-gN5so$P)pQ-+-S?%Xy$7;LkGs{O-nQL=W}8yYHB?H}t09{YTuZ%b^54434XbB#Q}qY#m1-G9|B8Ci zg7k`>uT?_Zfq3lLdrf0nCcoo;Pz|UKq{Hi^=DEh8{eedBNiO4eH73#T_oj1K(%U1A zU_+m`qHeVhtfnD*_N8~neBqg+mXSrWdO6V1ysrX}e$|S9&Uv`6mqRyov)`nsvx~>$B{9Y8t#MEs@ zW3eU3yy*!-_O791pN{MgR?S8`O>$A_K~gD&8TG+)&?Z0BH??jP@e^aTzbn^Y{;GO)}w;v@-tN=CYw1CnxS^YzSj4l z`%TQ;bH6AKH`U&hCxR3Yp-dK8wa7z$+*SWf*-=HYy_^{_o{YAb!&WVRAn~WM`1MFL zQL%llqUXAK<1~b;ouSSDeU6Cpnb_MmzsR&MSK||`_{po#XIo{TS@s=0cOBQJW511e zl%}lo*T24>g)i*cgj53E667}Tl&*Y z7*Y0yd{j~Ac)vW0;gre=yElq6;LBTMOyg1l#x5`aR`ORpr=3YvS&iYWu3`s7yOI z8-b&8_P7cw+Tw-0ku0gIJpv3}yN?K`{;JLd+!B#l#;0cxXI4`)o62ZksjaV(*%G|t zVat0?8fDpw_*qjHakId@aI=y7+q8WaoYP0m=UH)VFGi1Cf0^5x&k^%T#k*%=#Jc>v zax;^x)UIyMSm#Ac=3nVyJavnae4b$n~+B`1ttR=a3xNFCv+-#hJK02diPVXnT1jeJmUl`HcN&UeAo# zYgx`6a+Y~=jH18bhxzOlrOmsi#uD*r_MQuQ&9dtv$HTf0-WJY_^Rg79ip#ORljJXl zI@Ulroe{~2|J&DDP>9R;McHRV+wCwFJ?`#p{;wEa_1W;AWkv?&M&fF!-el*W}oDK6I8;H1bIJC9HeGm88{%jA1 z2iI@pT=7ZYw~YIyuip_r{sx8jfxcuoZ*3PN%UOkO@r|bEnfww>+)$HAZpboDNd5-Y zx3q8z_afrNeQs-}BG&m-)Z?!e zaefywNnBh-Oj%XDy;<&}dt*`Ja=ZU58S~^L#qslG`iuzYx#G?kx6Hc7pr6+?{ePW* E0lhB_`Tzg` diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/ITPro.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/ITPro.xsd deleted file mode 100644 index 4e28d17..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/ITPro.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.rld b/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.rld deleted file mode 100644 index fbd331a4c9d816a8506e5fa4817624a37c646970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115835 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 - - -0X00020004 - - - - - - - - 0X00004FC1 - 0X00000005 - 0X0000000C - 0X0000001A - 0X0000009D - - 0X00004FC1 - - - - - - - - - - - - - - - 0X00005162 - 0X00000005 - 0X00000025 - 0X0000001A - 0X00000103 - - 0X00005162 - - - - - - - - - - - - 0X80000001 - - 0X80000001 - - - 0X00004E22 - - 0X00004E22 - - - 0X0000E101 - - 0X0000E101 - - - 0X0000E102 - - 0X0000E102 - - - 0X000080F6 - - 0X000080F6 - - - 0X0000E103 - - 0X0000E103 - - - 0X0000E104 - - 0X0000E104 - - - 0X000080F4 - - 0X000080F4 - - - 0X00004E20 - - 0X00004E20 - - - - 0XFFFEFFA4 - - - 0X0000A800 - - 0X0000A800 - - - 0X0000A817 - - 0X0000A817 - - - - - 0X0000E107 - - 0X0000E107 - - - 0X0000E110 - - 0X0000E110 - - - 0X0000E141 - - 0X0000E141 - - - - - 0X80000002 - - 0X80000002 - - - 0X0000E12B - - 0X0000E12B - - - 0X0000E12C - - 0X0000E12C - - - 0X0000E123 - - 0X0000E123 - - - 0X0000E122 - - 0X0000E122 - - - 0X0000E125 - - 0X0000E125 - - - 0X00004E8B - - 0X00004E8B - - - 0X0000E120 - - 0X0000E120 - - - 0X00004E84 - - 0X00004E84 - - - 0X00004E8A - - 0X00004E8A - - - 0X00004E89 - - 0X00004E89 - - - 0X00004E8C - - 0X00004E8C - - - 0X00004E87 - - 0X00004E87 - - - 0X00004E86 - - 0X00004E86 - - - - - 0X80000003 - - 0X80000003 - - - 0X00004EEC - - 0X00004EEC - - - 0X00004EEE - - 0X00004EEE - - - 0X00004EEF - - 0X00004EEF - - - 0X00004EEA - - 0X00004EEA - - - 0X00004EEB - - 0X00004EEB - - - 0X000050F4 - - 0X000050F4 - - - 0X00004EF0 - - 0X00004EF0 - - - 0X00004EF3 - - 0X00004EF3 - - - 0X00004EF1 - - 0X00004EF1 - - - 0X00004EF5 - - 0X00004EF5 - - - 0X0000E800 - - 0X0000E800 - - - 0X0000E801 - - 0X0000E801 - - - 0X00007541 - - 0X00007541 - - - 0X000080EB - - 0X000080EB - - - 0X00007531 - - 0X00007531 - - - - - 0X80000004 - - 0X80000004 - - - 0X00004F50 - - 0X00004F50 - - - 0X00004F5A - - 0X00004F5A - - - 0X00004F59 - - 0X00004F59 - - - 0X00004F56 - - 0X00004F56 - - - 0X00004F58 - - 0X00004F58 - - - 0X000059D6 - - 0X000059D6 - - - 0X000059D7 - - 0X000059D7 - - - 0X00004F52 - - 0X00004F52 - - - - - 0X80000005 - - 0X80000005 - - - 0X00005152 - - 0X00005152 - - - 0X00005154 - - 0X00005154 - - - 0X0000514F - - 0X0000514F - - - 0X00005151 - - 0X00005151 - - - 0X00005170 - - 0X00005170 - - - 0X00005177 - - 0X00005177 - - - 0X00005178 - - 0X00005178 - - - 0X00005078 - - 0X00005078 - - - 0X00005079 - - 0X00005079 - - - 0X0000507A - - 0X0000507A - - - 0X00005141 - - 0X00005141 - - - 0X00005160 - - 0X00005160 - - - 0X00008051 - - 0X00008051 - - - - - 0X80000006 - - 0X80000006 - - - 0X000050E3 - - 0X000050E3 - - - 0X000050DE - - 0X000050DE - - - 0X000050F3 - - 0X000050F3 - - - 0X000050DD - - 0X000050DD - - - 0X000050DC - - 0X000050DC - - - 0X000050EC - - 0X000050EC - - - 0X000050E4 - - 0X000050E4 - - - 0X000050EE - - 0X000050EE - - - 0X000050EF - - 0X000050EF - - - 0X000050F2 - - 0X000050F2 - - - - - 0X80000007 - - 0X80000007 - - - 0X0000515B - - 0X0000515B - - - 0X0000515A - - 0X0000515A - - - 0X0000E132 - - 0X0000E132 - - - 0X0000E133 - - 0X0000E133 - - - 0X0000E134 - - 0X0000E134 - - - 0X0000E131 - - 0X0000E131 - - - - - 0X80000008 - - 0X80000008 - - - 0X00007556 - - 0X00007556 - - - 0X00007559 - - 0X00007559 - - - 0X00007557 - - 0X00007557 - - - 0X0000755D - - 0X0000755D - - - 0X0000755A - - 0X0000755A - - - 0X0000E140 - - 0X0000E140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsd deleted file mode 100644 index 46aac98..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsd +++ /dev/null @@ -1,18 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsx b/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsx deleted file mode 100644 index ecd16a3..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml.xsx +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML.xsl b/newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML.xsl deleted file mode 100644 index a0fa6cb34207d641ce4aa9c794694dba9d6aa789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmaKqOH0F05QWcL@IPF;Z)*_*L$!z?E_BrjE(+3jib*O>YTG}reltz_a3L3NCNpPd z&YZbF-)(iYQL02iUz%vCTyrgy=~gwh)X*j0KqS)$|Cnf|nMYsM)1&I3uEBJ4r*oaD ztqXj0a(aqE=U7v|2{l6bKl6IlZJ+{sOk}7n_nThyOy)vQ+-7%)7h35PE(ffYi?;r|xZ11H}cBnB;rD1d5)i(84#U1JwX83d2 diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML_Style.xsl b/newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML_Style.xsl deleted file mode 100644 index ac401bc..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/Maml_HTML_Style.xsl +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - - - - - - - 100% - - - - - border-collapse: collapse; - border-width: 1px; - border-color: black; - - - - - border-left-style: solid; - border-right-style: solid; - border-top-style: hidden; - border-bottom-style: hidden; - - - border-left-style: none; - border-right-style: none; - border-top-style: hidden; - border-bottom-style: hidden; - - - border-left-style: hidden; - border-right-style: hidden; - border-top-style: solid; - border-bottom-style: hidden; - - - border-left-style: hidden; - border-right-style: hidden; - border-top-style: hidden; - border-bottom-style: solid; - - - border-left-style: hidden; - border-right-style: hidden; - border-top-style: hidden; - border-bottom-style: hidden; - - - border-left-style: solid; - border-right-style: solid; - border-top-style: solid; - border-bottom-style: solid; - - - - - - - - - - - - - - - 1* - - - - - - width: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - align - - - char - - - charoff - - - - - - - - - - - - - - bottom - - - top - - - - - - - - - border-width: 1px; - border-color: black; - - - colsep - - - - rowsep - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - border-right-style: none; - - - border-right-style: solid; - - - - - - - - - - border-bottom-style: none; - - - border-bottom-style: solid; - - - - - - - - - - - - - - left - - - - - - - - - - - - - - - - - - - - - - - % - - - 50% - - - - - - - -
\ No newline at end of file diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloper.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloper.xsd deleted file mode 100644 index 7ae7937..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloper.xsd +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - This schema describes MAML, the Microsoft Assistance Markup Language. - MAML is intended for software documentation. In particular, it is - intended to accomodate the needs of Microsoft documentation. - - - The schema is broken into three main areas: end user, developer and - IT Pro. These areas adequaltely categorize Microsoft - documentation. - - - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/4. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately - incremented in uri of the updated version of the MAML schema. - - - - - This portion of the schema was created by chains in July 2004. - - - This portion of the schema defines the page types for managed page types. - - - - - - - - - - This is the root element of a managed class document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed method document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed event document. - - - n/a - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed property document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed structure document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed namespace document. - - - n/a - - - - - - - - - - - - - - - - - - - - This is the root element of a managed enumeration document. - - - n/a - - - - - - - - - - - - - - - - - - - - This is the root element of a managed interface document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed delegate document. - - - n/a - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed operator document. - - - n/a - - - - - - - - - - - - - - - - - - - - - - - This is the root element of a managed field document. - - - n/a - - - - - - - - - - - - - - - - - - - - This is the root element of a managed overload document. - - - n/a - - - - - - - - - - - - - - - - - This is the root element of a managed constructor document. - - - n/a - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloperStructure.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloperStructure.xsd deleted file mode 100644 index d156cf8..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/ManagedDeveloperStructure.xsd +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - This schema describes MAML, the Microsoft Assistance Markup Language. - MAML is intended for software documentation. In particular, it is - intended to accomodate the needs of Microsoft documentation. - - - The schema is broken into three main areas: end user, developer and - IT Pro. These areas adequaltely categorize Microsoft - documentation. - - - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/4. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately - incremented in uri of the updated version of the MAML schema. - - - - - This portion of the schema was created by chains in July 2004. - - - This portion of the schema provides the definitions for developer-specific structural elements that make up developer document page types. - - - - - - - - - - - - This element contains a detailed discussion of the current item. - - - n/a - - - - - - - This element holds a discussion of security issues. - - - n/a - - - - - - - This element holds a discussion of a code example. - - - n/a - - - - - - - - - - - - This element is a collection of codeExample elements. - - - n/a - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/ProviderHelp.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/ProviderHelp.xsd deleted file mode 100644 index 19e042c..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/ProviderHelp.xsd +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/base.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/base.xsd deleted file mode 100644 index aef59aa..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/base.xsd +++ /dev/null @@ -1,137 +0,0 @@ - - - - - This schema defines attributes and simpleTypes that can be referenced from any other part of MAML. - - - - - - - Describes the type of media file format. - - - - - - - - - - - - - - - - - - - - - Describes the type of alert. - - - - - - - - - - - - - - - - - Describes the development language for a specific part of a document. - - - - - - - - - - - - - - - - - - - - - - - - Describes the attached content with a unique ID/GUID/URI to reference for purposes such as sharing and hyperlinking. - - - - - - Provides a set of attributes for identifying and marking content for sharing and conditional filtering. - - - - - Describes one or more conditions for a particular part of a document. Use conditions to filter the parts of a document that appear in the final output. Each condition can be based on user state or computer state. For example, a step in a procedure does not appear if the user is not logged on as an administrator; a link appears only if a particular peripheral device is installed. Specify conditions in URI notation. - - - - - Specifies the content fragment that replaces the parent element at presentation time. An empty reference cannot be defined for a content fragment. Actual content is always used as a placeholder, the required content fragment replaces the placeholder at presentation time. - - - - - Specifies one or more subsequent elements to replace when the parent element consists of multiple root elements. The first element always uses the value of the replaceWith attribute; subsequent elements use the value of the conditionalDelete attribute. - - - - - - - - - - - - Includes the common attributes, allows character data and the notLocalizable element. - - - - - - - - - - - This type includes the common attributes and allows integer data. - - - - - - - - - - Intended for creating empty elements without attributes. There is no schema type for empty. - - - - - - Identifies a span of text that should not be localized. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/baseConditional.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/baseConditional.xsd deleted file mode 100644 index 6d1e900..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/baseConditional.xsd +++ /dev/null @@ -1,121 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - - Specifies a programming language. - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies the identifier for a platform (such as an operating system version). - - false - - - - - - - - - - - Describes a collection of platform elements. - - n/a - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/block.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/block.xsd deleted file mode 100644 index d6e2e6c..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/block.xsd +++ /dev/null @@ -1,23 +0,0 @@ - - - - - This schema definition defines block inline types for the CS Schema. This schema is part of the base layer. - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/blockCommon.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/blockCommon.xsd deleted file mode 100644 index a395df8..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/blockCommon.xsd +++ /dev/null @@ -1,90 +0,0 @@ - - - - - Defines block inline types for the Content Studio Schema. This schema is part of the base layer. - - - - - - - Describes a span of introductory text within a para element. - - - - - Specifies a class for the leadInPhrase element. - - - - - - - - - - - - - Describes a paragraph, the most basic documentation unit. In addition to text, it can contain child elements to indicate various inline text types, or to add functionality such as a task or a shortcut. - - - - - - - - - - - - - - - - - - - - - - Specifies the title of a document, or part of a document. - - - - - Specifies a secondary title for a document, or part of a document. - - - - - Describes a quotation. The quote element can contain text and child elements, which can be used to indicate various inline text types. - - - - - Replaced at build time by the shared content to which it refers using the parameters provided by the user. The parameters can consist of text, and XML markup. In most cases the parameter values will not be localizable content. - - - - - Specifies a link to another entry within a document. - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/blockSoftware.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/blockSoftware.xsd deleted file mode 100644 index 73c281d..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/blockSoftware.xsd +++ /dev/null @@ -1,23 +0,0 @@ - - - - - This schema definition defines block inline types for the CS Schema. This schema is part of the base layer. - - - - - - - - Identifies a span of text that relates to a user interface, or console output text. - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/command.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/command.xsd deleted file mode 100644 index cb5aef8..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/command.xsd +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - This schema describes the command page type of MAML. - - - - - - - - - - - - The commandHelp element describes the content model for the command help content type. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The commandDetails element ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The commandSyntax element ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The commandParameters element ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The inputTypes element ... - - - - - - - - - - - - - - - - - - - - - - - The returnTypes element ... - - - - - - - - - - - - - - - - - - - - - - - The commandExceptions element ... - - - - - - - - - - - - - - - The commandErrors element ... - - - - - - - - - - - - - - - - - - - - - The commandExamples element ... - - - - - - - - - - - - - - - - - - - - - The configuration element ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/conditionSet.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/conditionSet.xsd deleted file mode 100644 index 0c4f8e4..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/conditionSet.xsd +++ /dev/null @@ -1,92 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - - - Describes the axis of a condition. In conditional markup, the axis refers to a category of conditions, such as installed hardware or user privilege. - - false - - - - - - - - - - - Describes the value of a condition. - - false - - - - - - - - - - - - Describes a condition to evaluate, that is part of a conditionSet element. - - n/a - - - - - - - - - - - - Describes the attached content with a unique ID/GUID/URI to reference for purposes such as sharing and hyperlinking. - - - - - - Describes a set of conditions to evaluate. Each condition relates to a particular predefined condition, and can evaluate to true or false. - - false - - - - - - - - - - - Describes a collection of condition sets. - - false - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developer.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developer.xsd deleted file mode 100644 index 6f4dd53..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developer.xsd +++ /dev/null @@ -1,261 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - Contains a detailed discussion of the current item. - - n/a - - - - - - Contains instructions for building a code example. - - n/a - - - - - - Contains a discussion of error handling and other related issues. - - n/a - - - - - - Contains a discussion of security issues. - - n/a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Describes a block of example code text. - - - - - - - - - Specifies the programming language used in a code example or some other programmatic structure. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies a reference to a block of code. - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.rld b/newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.rld deleted file mode 100644 index 6618568a8709b9c7aa7b8f10c309e7e3dedf5681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115907 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 S#2YG=y82^3{JsbExcGPcTuhMw diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.xsd deleted file mode 100644 index cd1ceae..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerCommand.xsd +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - This schema describes the command page type of MAML. - - - - - - - - - The command element describes the content model for the command help content type. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerDscResource.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerDscResource.xsd deleted file mode 100644 index f884e4d..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerDscResource.xsd +++ /dev/null @@ -1,45 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - Root element of DscResource type. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManaged.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManaged.xsd deleted file mode 100644 index f011ffc..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManaged.xsd +++ /dev/null @@ -1,229 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedClass.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedClass.xsd deleted file mode 100644 index edb7ad3..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedClass.xsd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - - - - Root element of managedClass page type. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedConstructor.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedConstructor.xsd deleted file mode 100644 index 5a06d97..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedConstructor.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - Root element of managedConstructor page type. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedDelegate.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedDelegate.xsd deleted file mode 100644 index 1b24239..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedDelegate.xsd +++ /dev/null @@ -1,37 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - Root element of managedDelegate page type. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEnumeration.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEnumeration.xsd deleted file mode 100644 index bb1da97..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEnumeration.xsd +++ /dev/null @@ -1,33 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - Root element of managedEnumeration page type. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEvent.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEvent.xsd deleted file mode 100644 index 581b63a..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedEvent.xsd +++ /dev/null @@ -1,52 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - Root element of managedEvent page type. - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedField.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedField.xsd deleted file mode 100644 index c620a8c..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedField.xsd +++ /dev/null @@ -1,45 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - Root element of managedField page type. - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedInterface.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedInterface.xsd deleted file mode 100644 index a285890..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedInterface.xsd +++ /dev/null @@ -1,45 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - Root element of managedInterface page type. - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedMethod.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedMethod.xsd deleted file mode 100644 index d90ca0b..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedMethod.xsd +++ /dev/null @@ -1,38 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - Root element of managedMethod page type. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedNamespace.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedNamespace.xsd deleted file mode 100644 index 530f607..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedNamespace.xsd +++ /dev/null @@ -1,55 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - Root element of managedNamespace page type. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOperator.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOperator.xsd deleted file mode 100644 index 39af975..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOperator.xsd +++ /dev/null @@ -1,22 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - Root element of managedOperator page type. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOverload.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOverload.xsd deleted file mode 100644 index 2fe1521..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedOverload.xsd +++ /dev/null @@ -1,39 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - Root element of managedOverload page type. - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedProperty.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedProperty.xsd deleted file mode 100644 index 875051e..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedProperty.xsd +++ /dev/null @@ -1,46 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - Root element of managedProperty page type. - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedStructure.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedStructure.xsd deleted file mode 100644 index 7320d74..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerManagedStructure.xsd +++ /dev/null @@ -1,45 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - - - Root element of managedStructure page type. - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerReference.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerReference.xsd deleted file mode 100644 index c237e93..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerReference.xsd +++ /dev/null @@ -1,305 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - - Identifies the name of an assembly. - - false - - - - - - Identifies the version of an assembly. - - false - - - - - - Identifies the culture of an assembly. - - false - - - - - - Identifies the public key for an assembly. - - false - - - - - - Identifies the hash for an assembly. - - false - - - - - - - - - - - - - - - Describes a collection of information for an assembly. - - n/a - - - - - - - Reserved for internal use. - - n/a - - - - - - Specifies the return value of a function or property. - - n/a - - - - - - Contains a discussion of the thread safety characteristics of the current item. - - n/a - - - - - - Contains information that is only relevant to implementers of the current item. - - n/a - - - - - - Contains information that is only relevant to callers of the current item. - - n/a - - - - - - Contains information that is only relevant to inheritors of the current item. - - n/a - - - - - - - - - - - - Refers to another code entity that performs a function similar to that of the current code entity. Unlike the current entity, the target of the reference is CLS-compliant. - - n/a - - - - - - Refers to another code entity that performs the same function as the current code entity. It is typically used for mapping from an operator to the equivalent function (such as from op_Equality to Equals) or from an obsolete item to its replacement. - - n/a - - - - - - Contains a description of a generic or template parameter. - - n/a - - - - - - - - - - - Contains a collection of genericParameter elements. - - n/a - - - - - - Contains a description of a functional parameter. - - n/a - - - - - - - - - - - Describes a collection of parameter elements. - - n/a - - - - - - Contains a description of one type of exception. - - n/a - - - - - - - - - - - Contains a collection of exception elements. - - n/a - - - - - - Contains a discussion of a particular permission required to use the current code element. - - n/a - - - - - - - - - - - Contains a collection of permission elements. - - n/a - - - - - - - - - - - - Contains a collection of platforms along with a discussion of the behavior of the current code entity on those platforms. - - n/a - - - - - - - - - - - Contains a collection of platformNote elements. - - n/a - - - - - - - - - - - - - - - - - - - - - - - - - - - - Contains the documentation for a single code entity. A code entity is a type, member, or overload-set. The code entity is identified by a single codeEntityReference element, that is a child of this element. - - n/a - - - - - - - - - - - Contains a simple collection of codeEntity elements. - - n/a - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerStructure.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerStructure.xsd deleted file mode 100644 index d562f7d..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerStructure.xsd +++ /dev/null @@ -1,93 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - - - - - - - - Contains a detailed discussion of the current item. - - n/a - - - - - - Contains instructions for building a code example. - - n/a - - - - - - Contains a discussion of error handling and other related issues. - - n/a - - - - - - Contains a discussion of security issues. - - n/a - - - - - - - - - - - - - - - - - - - - - - - Contains a discussion of a code example. - - n/a - - - - - - - - - - - Contains a collection of codeExample elements. - - n/a - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/developerXaml.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/developerXaml.xsd deleted file mode 100644 index edbb10b..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/developerXaml.xsd +++ /dev/null @@ -1,145 +0,0 @@ - - - - - This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation. - The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation. - The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10. - Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema. - - - This portion of the schema was created by chains in Dec 2004. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/endUser.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/endUser.xsd deleted file mode 100644 index 03b9bf1..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/endUser.xsd +++ /dev/null @@ -1,42 +0,0 @@ - - - - - Describes the end user content types of MAML. These content types represent schema structures that are used to create documentation for end-users. End user structures are pervasive in Windows XP and Office XP documentation. - - - - - - - - - - - - Describes the content model for the conceptual content type. Conceptual topics provide a high-level overview of particular technology areas. - - - - - Describes the content model for the tutorial content type. Tutorial topics are used to provide instructions for performing tasks that are broader in scope than simply one procedure. Typically, a tutorial will encompass two or more shorter procedures. - - - - - Describes the content model for the procedural content type. Procedural topics describe some process or set of processes that explain how to accomplish a specific task, such as installing a printer. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/faq.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/faq.xsd deleted file mode 100644 index 92cd580..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/faq.xsd +++ /dev/null @@ -1,89 +0,0 @@ - - - - - This schema definition defines the FAQ content model for the Content Studio schema. This schema is part of the base layer. - - - - - - Describes the content model for the FAQ content type. The FAQ content type is used to create frequently asked question (FAQ) documents. A document that uses the FAQ content type can consist of one or more sets of questions and answers. - - - - - Describes a titled division within a frequently asked question (FAQ) document. Each faqDiv element can contain one or more faqEntry elements. - - - - - - - - - - - - - - - - Describes a question-answer pair within a frequently asked question (FAQ) document. - - - - - - - - - - - - - - - Describes the question text for a frequently asked question (FAQ) entry. - - - - - Describes an answer to a frequently asked question (FAQ) entry. - - - - - - - - - - Specifies the name of the document author. - - - - - - - - - - - - - - - - Specifies the type of content for the document. - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/glossary.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/glossary.xsd deleted file mode 100644 index f356205..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/glossary.xsd +++ /dev/null @@ -1,54 +0,0 @@ - - - - - This schema definition defines the glossary content type for the Content Studio Schema. This schema is part of the base layer. - - - - - - Describes the content model for the glossary content type. Glossary topics contain a set of terms and associated definitions. - - - - - - - - - - - - - Specifies the type of content for the document. - - - - - - - - Describes a titled section within a glossary. Each glossaryDiv element can contain one or more glossaryEntry elements. - - - - - - - - - - Specifies the class of the element. - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/hierarchy.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/hierarchy.xsd deleted file mode 100644 index e5b0355..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/hierarchy.xsd +++ /dev/null @@ -1,206 +0,0 @@ - - - - - This schema definition defines common hierarchy types for the Content Studio Schema. This schema is part of the base layer. - - - - - - Describes the content model for the reusableContent content type. A typical reusableContent topic consists of a collection of content that can be shared among multiple documents. Each entry has a unique ID, which facilitates linking. An entry can contain a wide variety of content, ranging from a string to an entire section of a document. - - - - - - Provides a general container for any MAML content. This content must be in the MAML namespace and conform to the rules specified in the schema. Strict validation is performed on MAML parts. - - - - - - - - - - - Contains a block of data that defines a Help behavior. The helpBehavior element allows authors to extend standard help behaviors with custom code in the form of .NET assemblies. - - - - - - Specifies a qualified name identifying the assembly to be called. - - - - - Specifies the name of the assembly. - - - - - - - Identifies the name of the helpBehavior object to invoke the method on. - - - - - Specifies the name of the class to invoke. - - - - - - - Specifies the name of the assembly method to call, if any. - - - - - Name of the assembly method to call. - - - - - - - Defines a list of parameters to pass to the target behavior. - - - - - Allows the inclusion of XML fragments from any other namespace. - - - - - - - - - Describes the attached content with a unique ID/GUID/URI to reference for purposes such as sharing and hyperlinking. - - - - - Specifies the class of helpBehavior. - - - - - - - - Specifies the type of content for the document. - - - - - - - - - - - - - - - - - - - - - - Describes a section within a document. The section element supports recursion (in other words, an instance of a section element can have one or more section elements as children). The section element defines the hierarchy of sections within a topic through nesting. Each section corresponds to a heading level in the final, rendered document. For example, the top section is equivalent to the first heading level and a child section of that element would be the second level. - - - - - - - - - - - - - - - - - - - - - - - Contains a collection of section elements. The sections element encloses the major body of the document. - - - - - Describes a span of authored content. - - n/a - - - - - - - - - - - - - - - - - - - - - - - - - - Describes a collection of links, typically used for the "Related Topics" section of a document. The purpose of this element is to provide links to topics that may be of further interest to the user. - - n/a - - - - - - Describes copyright information for a document. - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/inline.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/inline.xsd deleted file mode 100644 index c8835db..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/inline.xsd +++ /dev/null @@ -1,182 +0,0 @@ - - - - - This schema aggregates inline elements from other inline schemas. - - - - - - - - - - - - - - - Describes a link from one glossary entry to another related glossary entry. - - - - - - - - - - - - - - - Describes a simple inline-only content model. It provides both text and elements with similarly simple content models. - - - - - - - - - - - - - - - Deprecated; do not use. - - true - - - - - - - - - - - - Deprecated; do not use. - - n/a - - - - - - Contains summary text that provides further information about a link. - - - - Abstracts href attribute and linkText and summary elements. - - - - - - - - - Defines one or more name/value pairs that contain parameter data to pass to the target. - - - - - Specifies the name of the parameter. - - - - - Specifies the value of the parameter. - - - - - - - Describes a collection of objectParameter elements. - - - - - - - - - - - - - - - - - - - Provides a hosting environment for the appropriate multimedia player. - - - - - Specifies caption text for the object. - - - - - Specifies the URI path to the object. - - - - - Specifies the URI path to a preview object, such as a thumbnail image. - - - - - - Specifies whether target verification should be used. - - - - - - Contains descriptive text for a link. - - - - - - - - - - - - - The navigationLink element is the navigational link in MAML, intended to produce a jump-type link in the help pane. Glossary links are navigation links. - - - - - - - - - - - Specifies the URI for a navigation link. - - - - - - - Denotes the first instance of a new term within a document. Use the newTerm element to introduce terms that the user may be unfamiliar with. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineCommon.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/inlineCommon.xsd deleted file mode 100644 index 28fbe77..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineCommon.xsd +++ /dev/null @@ -1,212 +0,0 @@ - - - - - This schema defines common inline elements. - - - - - - - - Identifies an acronym within a body of text. - - - - - Identifies an abbreviation within a body of text. - - - - - Identifies a quotation within a body of text. - - - - - Identifies a date within a body of text. - - - - - Identifies a phrase of a language different than the primary language of a document. - - - - - Contains a span of text, but does not specify any semantics by itself. Use the phrase element to insert replaceable content into a document when no other element is suitable. - - - - - Specifies a span of conditional text, within a body of text. - - - - - - - - - - - - - - - Identifies a subscript in a mathematical expression. A subscript is a character or symbol that displays slightly below and to the side of another character. - - true - - - - - - Identifies a superscript in a mathematical expression. A superscript is a character or symbol that displays slightly above and to the side of another character. - - true - - - - - - - Describes a corporate trademark. - - - - - Specifies the year of a particular copyright. - - - - - Specifies the person or company that holds a particular copyright. - - - - - Describes the copyright information for a document. - - - - - - - - - - Specifies the type of trademark used. - - - - - - - - - - - - - - - - Identifies the name of a corporation within a body of text. - - - - - Identifies the name of a country within a body of text. - - - - - - Describes an alert that appears inline within a body of text. - - - - - - - Specifies the type of an alert. - - - - - - - - - Describes an XML entity that appears inline within a body of text. - - - - - Specifies the type of entity. - - - - - - - Describes a range of values, such as numbers or characters. - - - - - - Identifies a span of text to be associated with a footnote reference. - - - - - Identifies a line break (carriage return) within a body of text, without breaking the paragraph. - - - - - Identifies a word that has special meaning in reference documentation (e.g., in C# const is a language keyword). - - - - - This element identifies strings that represent a mathematical elements. The intent is to allow rendering to format a math element in a font that supports displaying the text appropriately (example would be allowing for a font to render the Pi symbol appropriately). - - - - - - This type describes the set of inline elements that are likely to be needed for block elements' content models. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineSoftware.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/inlineSoftware.xsd deleted file mode 100644 index 430dee4..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineSoftware.xsd +++ /dev/null @@ -1,195 +0,0 @@ - - - - - This schema definition defines the common reference types within the Content Studio schema. - - - - - - - Identifies the name of an application, such as Microsoft Windows or Notepad, within a body of text. - - - - - Identifies the name of a database within a body of text. - - - - - Identifies an Internet address, such as a Web URL or an e-mail address, within a body of text. - - - - - - - Indicates the type of URI to use. - - - - - - - - - - - - - - - - Specifies a path to a local resource. - - - - - - - - - Indicates the type of URI to use. - - - - - - - - - - - - - - - - - - - Identifies an operating system environment variable within a body of text. - - - - - Identifies a string of error text within a body of text. - - - - - Identifies the name of a computer hardware component or peripheral device, within a body of text. - - - - - Identifies a literal value within a body of text. - - - - - Identifies a string of markup, such as XML or TeX, within a body of text. - - - - - Identifies the name of an executable or other software application. - - - - - - - - - - Identifies a span of text representing part of a command or function that the user replaces. - - - - - Identifies a symbol within a body of text that represents a grammatical construct, or is a link to something else. Similar to the literal element. - - - - - Identifies a string of code, within a body of text. - - - - - Identifies textual content associated with a user interface or console output, within a body of text. - - - - - Identifies a string that represents a command prompt or user interface input field, within a body of text. - - - - - Identifies text representing a user interface element, within a body of text. - - - - - Identifies a registry entry, within a body of text. - - - - - - Specifies the name of the registry entry. - - - - - Specifies the key value of the registry entry. - - - - - Specifies the value of the registry entry. - - - - - - Specifies the type of registry entry. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineUi.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/inlineUi.xsd deleted file mode 100644 index ad383b1..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/inlineUi.xsd +++ /dev/null @@ -1,166 +0,0 @@ - - - - - This schema definition defines the inline UI elements for the Content Studio Schema. This schema is part of the base layer. - - - - - - - Identifies one or more selections from a menu. - - - - - - - - - - - - - - - - Identifies a computer keyboard key combination for an action that is also available through the menu. - - - - - - - - - - - Specifies which mouse button to click, as part of a UI automation sequence. - - - - - - - - - - - - - - - - - - - - - - - - Describes the identifying text on a user interface element, within a body of text. - - - - - Identifies descriptive text for an icon or graphic that appears in a user interface element, within a body of text. - - - - - Identifies the name of a menu, within a body of text. - - - - - - - - - - - Identifies the name of a menu item, within a body of text. - - - - - Identifies the name of a key on the computer keyboard, within a body of text. - - - - - Identifies the symbolic name of a key on the computer keyboard, within a body of text. - - - - - Describes a computer keyboard key combination for an action that is also available through a menu. When the userAction element is a child of an executionMethod element, it indicates a point in a task where the user is required to perform a specific action. - - - - - - - - - - - Identifies a text string representing data that the user enters, within a body of text. - - - - - - - - - - - - This type is used for describing user actions. - - - - Identifies a user action, using either the keyboard or the mouse. - - - - - - - - - - - - - - - - - This group is used for referencing all base UI elements. - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/shellExecute.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/shellExecute.xsd deleted file mode 100644 index ad5b6b6..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/shellExecute.xsd +++ /dev/null @@ -1,54 +0,0 @@ - - - - - This schema defines a way to specify a command line that will be executed as a shell execute. This schema is part of the base layer. - - - - - - - - - - - - - - - - - - - - - - - Contains a string with the command to execute. This typically consists of the name of a program or other executable, followed by and commands or parameters. For example: "notepad myFile.txt". - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structure.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structure.xsd deleted file mode 100644 index 1a1d4fc..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structure.xsd +++ /dev/null @@ -1,132 +0,0 @@ - - - - - This schema definition defines common structure types for the Content Studio Schema. This schema is part of the base layer. - - - - - - - - - - - Describes an example within a topic. Examples are typically one or more lines of code. - - - - - Contains transitional text to insert between divisions within a document. - - - - - Contains a summary, introduction, or short description of the current item. This text typically appears in a topic and may also be used as the description of the topic that appears in a jump table when the topic is being linked to. - - n/a - - - - - - - Describes the common structure elements. It is intended for use in page types and structure elements. - - - - - - - Used for cases where both structure and block elements are needed; however, a limited set of elements is desired. - - - - - - - - Specifies whether the element should appear in an expanded or collapsed state at display time of the element. - - - - - - - - - - - - Identifies a span of text to render as a sidebar or similar alternate presentation. - - - - - Identifies a span of text to render as a pull quote or similar alternate presentation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Contains a reference to a code entity. - - false - - - - - - - - - - - - - Describes the schema for any block of text that can occur in an ACW panel. - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structureGlossary.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structureGlossary.xsd deleted file mode 100644 index af8ba4b..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structureGlossary.xsd +++ /dev/null @@ -1,93 +0,0 @@ - - - - - This schema definition defines question and answer types for the Content Studio Schema. This schema is part of the base layer. - - - - Describes a term, and set of associated definitions in a glossary. - - - - - - - - Contains one or more links to related glossary entries. - - - - - - - - - - - - Specifies the applicable platform for the term. - - - - - Specifies the applicable product for the term. - - - - - - - Contains one or more term elements for a glossary entry. - - - - - - - - - - Describes a word or phrase in a glossary entry. - - - - - - Specifies equivalent text in a different encoding for sorting purposes. Use the rubyText element to sort terms presented in languages that cannot be sorted alphabetically. - - - - - - Specifies an arbitrary class for the term. - - - - - Specifies the part of speech used by the term. - - - - - Specifies a specific geographical usage for the term. - - - - - Specifies the applicable language for the term. - - - - - Describes the attached content with a unique ID/GUID/URI to reference for purposes such as sharing and hyperlinking. - - - - - - - Explains the meaning of a term for a glossary entry. - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structureList.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structureList.xsd deleted file mode 100644 index 92deaee..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structureList.xsd +++ /dev/null @@ -1,99 +0,0 @@ - - - - - This schema definition defines common structure types for the Content Studio Schema. This schema is part of the base layer. - - - - - - - Describes a span of content to present in a list format. - - - - - - - - Specifies the type of list to create. - - - - - - - - - - - - - - - - Describes an item within a list element. The content of the listItem element is treated as a unit. - - - - - - - Indicates whether the list item, if selectable, is selected in a default rendering. - - - - - - - - - - - - - - - Specifies content of elevated importance or otherwise that needs to be called out. The alert element is a single-level alert structure. - - - - - - - - - Contains a collection of alert elements. An alertSet element can have one or more alert elements as children. Use the alertSet element for more than one alert item of the same type. For example, if a topic had three items for the notes section, an alertSet could be used to combine them. - - - - - - - - - Specifies the type of alert. - - - - - - - - - - Describes the common lists that can be used to describe list data. - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structureProcedure.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structureProcedure.xsd deleted file mode 100644 index 1f4d1fb..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structureProcedure.xsd +++ /dev/null @@ -1,49 +0,0 @@ - - - - - This schema definition defines common structure types for the Content Studio Schema. This schema is part of the common layer. - - - - - - Contains a single step in a task. A step can consist of text, one or more UI actions, or a branch point. - - n/a - - - - - - - - - - - - - Describes a list of sequenced steps required to complete a task. - - n/a - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structureTable.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structureTable.xsd deleted file mode 100644 index 06657a2..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structureTable.xsd +++ /dev/null @@ -1,132 +0,0 @@ - - - - - This schema definition defines common hierarchy types for the Content Studio Schema. This schema is part of the base layer. - - - - - - - Describes a table structure. The table element is the parent of all elements within a table structure. The MAML table model conforms to the Computer-Aided Acquisition and Logistic Support group (CALS) table model (a standard formatting type designed by the Department of Defense). - - - - - - - - - - - - - - - - - Describes an entry within a table. - - - - - - - - - Describes a table entry, which is equivalent to a cell within a table row. - - - - - Describes a table entry, which is equivalent to a cell within a table row. Use the headerEntry element for text or other content related to a tableHeader. - - - - - Describes a table entry, which is equivalent to a cell within a table row. Use the footerEntry element for text or other content related to a tableFooter. - - - - - Describes a row within a standard table structure. Each row can contain one or more entries. - - - - - - - - - - - - Describes a table header, typically the first row in a table. - - - - - Describes a table footer, typically the last row in a table. - - - - - - This type is intended for use as the children of table elements. - - - - - - - - - This type describes the attributes for table Entry. - The attributes used are not from docbook, but are modeled off of XHTML v1.1. - - - - Specifies the number of additional rows that the current entry (cell) should span. Similar in concept to the HTML rowspan attribute. This value should be a positive integer. - - - - - Specifies the number of additional columns that the current entry (cell) should span. Similar in concept to the HTML colspan attribute. This value should be a positive integer. - - - - - - - - - - - - - - - - Describes an entry in a definitionList. Each entry consists of a term/definition pair, and an optional URI. - - - - - - - - Defines a two column table with no header or footer. The first column contains the definition term, the second column contains the definition. - - n/a - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/structureTaskExecution.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/structureTaskExecution.xsd deleted file mode 100644 index 399449f..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/structureTaskExecution.xsd +++ /dev/null @@ -1,178 +0,0 @@ - - - - - Holds Windows UI Automation information. Gets referred to by ActionRef and ElementRef tags. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/task.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/task.xsd deleted file mode 100644 index 73da9ca..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/task.xsd +++ /dev/null @@ -1,464 +0,0 @@ - - - - - This schema file defines the schema for an automated procedural file. - - - - - - - - Refers to a UI element that is stored in a different schema. - - - - - - Refers to a uiAction element inside the taskExecutionBlock element. - - - - - Not yet implemented. - - - - - Not yet implemented. - - - - - Instructs ACW to show the action only in the specified playback mode (do it or show me). - - - - - Instructs ACW to act on the user's current selection (for example, a list item). Use actOnSelection in cases where a user is required to make a selection from a set of options that are not known at authoring time. - - - - - Instructs ACW to select the sole option in cases where only one option is available. Use caution when applying this attribute, as it may not be appropriate in some situations. - - - - - Set to true to indicate that this step commits a change (for example, this is a "Click OK" step). Set to false to indicate that this step doesn't actually perform any action (e.g. clicks a button that opens a dialog, or sets a checkbox but doesn't commit it). Helps the ACW runtime understand, when it ends, if it needs to try to show undo steps, or if no actions have actually happened. - - - - - - - - The root element for the automated task content type. Use the automated task content type to create topics that host Active Content Wizard (ACW) tasks. ACW tasks can either guide users through a task incrementally, or perform the task automatically. - - - - - - - Specifies the type of content for the document. - - - - - Specifies whether a welcome message should be displayed upon launching an Active Content Wizard (ACW) task. The welcome message contains a short description of the task, and prompts the user to select a playback mode (do it or show me). The default value is true. - - - - - Specifies whether a summary should be displayed upon completing an Active Content Wizard (ACW) task. The default value is true. - - - - - Not yet implemented. Specifies the version of the Active Content Wizard (ACW) script code for the current task. Used for troubleshooting. - - - - - Setting this to False means that the runtime should not show any generated undo steps when the task ends. Setting this to True means that the runtime should show undo steps when the task ends. - - - - - - - - - Describes a list of steps the user needs to perform in order to complete the task. - - - - - Provides information about the author of the document. - - - - - - Specifies the name of the author. - - - - - Specifies a URI that can be used to link to further information or resources related to the author. - - - - - Contains descriptive text about the author. - - - - - Specifies a URI that can be used to link to a graphic image of the author. - - - - - - - - Describes a set of steps that can be executed as an automated task (ACW), or displayed as a help topic. - - - - - - Introduction text for the task. - - - - - A procedure is a list of steps to take that should complete the task. - - - - - - - - - Allows creator of the content file to provide information about themselves - - - - - Contains computer-generated automation markup. Do not manually edit the contents of this element. - - - - - - - - - - - - - - - This step consists of nothing but text. In show-me, it's a step by itself. In Do-it, it's either ignored, or we stop to show, depending on attribute value - - - - - The step consists of one or more clicks on UI elements. - - - - - If the "condition" attribute in the step tag returns true then print the text inside here and stop the procedure - - - - - Present the user with a list of radio-button options, and invite him to choose one. - - - - - Instead of executing the next step in this task, execute the one with the same ID as the ID specified here - - - - - A step that launches a shell execute command line - - - - - Can mingle subTasks with a step. To call a subTask in another file, use the replaceWith attribute - - - - - A way of grouping steps together, for purposes of applying a state condition or runtime condition to several steps - - - - - - - - Describes a step that consists solely of text. If the task is being run in Show Me mode, it functions as a step in the procedure. In Do It mode, it is either ignored, or automation pauses to display the text, depending on the value set in the showDuringDoIt attribute. - - - - - - - - - - - - - - - - Describes one or more actions to perform on UI elements. - - - - - - - - - - - - Indicates whether a procedure should stop at the current point, based on the condition attribute. If the value in the condition attribute evaluates to true, the procedure stops, and any remaining text is displayed. - - - - - - - - - - - - - Displays a list of choices for the user. The script specifies steps to run for each choice. - - - - - - Provides information about user choices. Contains introductory text for a userChoiceStep element. - - - - - Each radio button option is in an Option tag. The option's text is in the Para tag, and if the user chooses this option, goto the associated target. - - - - - Contains text that prompts the user to choose from options defined in the userChoiceStep element. - - - - - - Indicates which user option should be the default. - - - - - - - - Skips forward or backward in the current sequence, to the step with the specified ID. - - - - - Specifies the IDREF for a step within a sequence. This value must match the id of another step in the document. - - - - - - - - Runs a Windows shell command. This element is the programmatic equivalent of clicking Start, clicking Run, and then entering a command. - - - - - - - - - - - - Adds a subTask to a step. Use the reusableContentEntry attribute to include a subTask element that has been defined in a different file. - - - - - Groups steps together so that standard MAML conditions, and the ifPresent attribute, can be applied to several steps at once. - - - - - - - Describes actions to perform only if a particular UI element, such as an error message dialog, is present. Otherwise the actions are skipped. Set the ifPresent attribute to true in cases where a UI element does not appear consistently, or may appear unexpectedly. - - - - - - - - - - - - Describes actions to perform only if a particular UI element, such as an error message dialog, is present. Otherwise the actions are skipped. Set the ifPresent attribute to true in cases where a UI element does not appear consistently, or may appear unexpectedly. The default value is false. - - - - - - - - Specifies a single option in a list of single-choice options. Use a para element to specify the text for the option. Alternatively, specifies a branch condition, which can either be explicitly chosen by the user, or by a state condition check. - - - - - - - - - - - - This is to represent a branch condition (either explicitly chosen by the user or by a state condition check.) - - - - - Specifies the label text to display for an option. - - - - - Contains the steps to run if the user chooses the associated option. - - - - - - - - Encodes some sequence of UI actions. - - - - - Each action has an ID that refers to the action's complete structure, stored elsewhere. - - - - - Full text description of the entire step. May encompass more than one click action. - - - - - Text description of how to undo this step. To be displayed when task finishes. - - - - - - - - - - - - - - - - - - - - - - - Unique identifier for the step. (Note: This attribute is not of type ID because the 'address' attribute already uses ID, and XSD forbids two attributes of type ID on a single element). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Contains steps to run if an actionRef fails to execute. - - - - - - - - Refers to a uiAction element inside the taskExecutionBlock. - - - - - Specifies the reason for failure using an enumeration value of type failureReasonEnumType. - - - - - - diff --git a/newton-cn/bin/v1.0/Schemas/PSMaml/troubleshooting.xsd b/newton-cn/bin/v1.0/Schemas/PSMaml/troubleshooting.xsd deleted file mode 100644 index 4232f2f..0000000 --- a/newton-cn/bin/v1.0/Schemas/PSMaml/troubleshooting.xsd +++ /dev/null @@ -1,78 +0,0 @@ - - - - - This schema definition defines the troubleshooting base type within the Content Studio schema. - - - - - - - - Describes the content model for the troubleshooting content type, which is used to create topics that guide users through solving problems. - - - - - - - - - - - - - - - - Specifies the type of content for the document. - - - - - - - Describes a problem sequence in a troubleshooting list. - - - - - - - - - - - - - - - Describes a symptom in a problem sequence. - - - - - Describes the cause of a symptom in a problem sequence. - - - - - Describes the solution for a problem in a problem sequence. - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/WSMan.Format.ps1xml b/newton-cn/bin/v1.0/WSMan.Format.ps1xml deleted file mode 100644 index 8e34497aa5b889b37ce0862a0ab62774556da940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16598 zcmeHOZEq7t5Z=#~`X8?FrA3gG(n?k3f=mct5p2sgg?@BnCq!}_WSge^`L@q9<6(F2 zZqMhS5M!(;zP-J9pV^t&J^R0Z8}5<&$DO;0%iP~?>}GE6&fJBYy5HR`ci-)~A92m_ zWa^GFKf=?gJC&#J-NK!?d+t|(c;p_sZ{0Vp;l9J%J>cBgh(F3SaBrc(9RC?UhtT&O zH0Iq2^x}9 z(C24zZyIOfEz+EU!ZDyHkehtFVv(WfLwk)Q4tagbb)mk;u*o@a)uyx{?Q8Nc!0nw- zrbV7%v_RB6$901F%)P?rNNhjG{8Q0deepzQhk#K(WZ*)Z&<^xc(K~yhEBPD%@*OzO z0C@@v(w^T#(jRbriMeAuxq!~J8lMq<1`K{O4pawPDRWIo%5~#uF^VV$Z8nqjG=fFR zSFJsOel7Ss!+#U}y6(sw;_kq8;BAhYu8mO!s5W%&xE`RIh~E~*ZJ8%_7xNwW2WE*y z_*;PD6H>p0>uZe2tphs_*2E_ z+SB_jv7Gnkx*mK9TC@+Pp$%v`wKuKZ#<&HJv_uc1K73=^z7iSKd(?+eeUWy6Du@}>+aKE35?*o?|>2a>WLM?QqzJ|J%_Fg}Ns-r#fc z@p_0c=QWq!mb|qN@|ehue2Sft$4_G`*U%c~`&IfIf2F_^gOPaSAv(-o#3$ig-g<^jF0qZ)lRt0a z^{|WD+seJV_78BHM(pd>KDJ!w?Nqdcw(22LF0rHII;ztFdLPA@sjTn)>oLRVtW#y` z(x{GZPbHlrEauJo9qg=%Sv`%Pif+$473F4!)jEXUE3@Qk3Y4Z%ktt1kM%K;g8pm~+ zrm6T={X$FEi`AH8j8oOA#F4ElskrYV_08#3Xiq(>c_&hdvpDm z+N(S#*SD5ZNo!#}2Uk%V>bm_Jui>(|NUh~!RK+VgwJu|hG0wL2o=0*bQMR)(?-y6@ zCU%@@J$8NO>B>%n5x+Y(W4_>SJUk`ZotrT>LW`vGeVjGJJRSC3#cZNhr`^lzSv_p^ zT-Z(bRa*Rt?66y|dVzhHukpxQ}#; zar*jd9qQ+L(_Pj1gxy{-j^nN;)Y97_t^grSReg_lZa?kb`OAJ*?HzX4>sB)J*eV*; zzV=ko6+MjqG*nd#kV{-e%d}lB>GkUx$N0@@yV_b+yPz0**X8h=ii|k>ErX61ID066 zw|`rp`MWs&s*msfd6LOr1WqK5ZABC#b`wuwKULdZ7xeX>)iQR%bzqTy^00?9J_qD5sq&RQ;-wa9Z8dztQ|3_A>zu diff --git a/newton-cn/bin/v1.0/en-US/powershell.exe.mui b/newton-cn/bin/v1.0/en-US/powershell.exe.mui deleted file mode 100644 index 23508ec15941755c8f5afb2e9c5336170fddfbe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 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 diff --git a/newton-cn/bin/v1.0/ko-KR/default.help.txt b/newton-cn/bin/v1.0/ko-KR/default.help.txt deleted file mode 100644 index 7fc3b06..0000000 --- a/newton-cn/bin/v1.0/ko-KR/default.help.txt +++ /dev/null @@ -1,112 +0,0 @@ - -항목 - Windows PowerShell 도움말 시스템 - -간단한 설명 - Windows PowerShell cmdlet 및 개념에 대한 도움말을 표시합니다. - -자세한 설명 - Windows PowerShell 도움말은 Windows PowerShell cmdlet, - 함수, 스크립트 및 모듈에 대해 설명하고 Windows PowerShell 언어의 요소를 비롯한 - 개념에 대해 설명합니다. - - Windows PowerShell에는 도움말 파일을 포함하고 있지 않지만 온라인에서 - 도움말 항목을 확인하거나, Update-Help cmdlet을 사용하여 도움말 파일을 - 컴퓨터에 다운로드한 다음 Get-Help cmdlet을 사용하여 도움말 항목을 - 명령줄에 표시할 수 있습니다. - - 또한 업데이트된 도움말 파일이 발표되면 Update-Help cmdlet을 사용하여 다운로드하여 - 로컬 도움말 콘텐츠를 최신 버전으로 유지할 수 있습니다. - - 도움말 파일이 없으면 Get-Help를 통해 cmdlet, 함수, 스크립트에 대한 - 자동 생성된 도움말이 표시됩니다. - - - 온라인 도움말 - Windows PowerShell에 대한 도움말은 TechNet 라이브러리(http://go.microsoft.com/fwlink/?LinkID=108518)에서 - 확인할 수 있습니다. - - cmdlet 또는 함수에 대한 온라인 도움말을 열려면 다음과 같이 입력하십시오. - - Get-Help -Online - - UPDATE-HELP - 도움말 파일을 컴퓨터에 다운로드하고 설치하려면 - - 1. "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다. - 2. 다음과 같이 입력합니다. - - Update-Help - - 도움말 파일을 설치한 후에는 Get-Help cmdlet을 사용하여 - 도움말 항목을 표시할 수 있습니다. 또한 Update-Help cmdlet을 사용하여 - 업데이트된 도움말 파일을 다운로드하여 로컬 도움말 파일을 항상 - 최신 버전으로 유지할 수 있습니다. - - Update-Help cmdlet에 대한 자세한 내용을 보려면 다음과 같이 입력하십시오. - - Get-Help Update-Help -Online - - 또는 다음 링크로 이동하십시오. http://go.microsoft.com/fwlink/?LinkID=210614(영문) - - - GET-HELP - Get-Help cmdlet은 사용자 컴퓨터에 있는 도움말 파일의 콘텐츠로 된 - 도움말을 명령줄에 표시합니다. 도움말 파일이 없으면 Get-Help가 cmdlet 및 함수에 대한 - 기본 도움말을 표시합니다. 또한 Get-Help를 사용하여 - cmdlet 및 함수에 대한 온라인 도움말을 표시할 수 있습니다. - - cmdlet에 대한 도움말을 보려면 다음과 같이 입력하십시오. - - Get-Help - - 온라인 도움말을 보려면 다음과 같이 입력하십시오. - - Get-Help -Online - - 개념 항목의 제목은 'About_'으로 시작합니다. - 개념 또는 언어 요소에 대한 도움말을 보려면 다음과 같이 입력하십시오. - - Get-Help About_ - - 모든 도움말 파일에서 단어 또는 구문을 검색하려면 다음과 같이 입력하십시오. - - Get-Help - - Get-Help cmdlet에 대한 자세한 내용을 보려면 다음과 같이 입력하십시오. - - Get-Help Get-Help -Online - - 또는 다음 링크로 이동하십시오. http://go.microsoft.com/fwlink/?LinkID=113316 - - - 예제: - Save-Help : 인터넷에서 도움말 파일을 다운로드하고 - 파일 공유에 저장합니다. - Update-Help : 인터넷 또는 파일 공유에서 도움말 파일을 - 다운로드하고 설치합니다. - Get-Help Get-Process : Get-Process cmdlet에 대한 도움말을 표시합니다. - Get-Help Get-Process -Online - : Get-Process cmdlet에 대한 온라인 도움말을 엽니다. - Help Get-Process : Get-Process에 대한 도움말을 한 번에 한 페이지씩 표시합니다. - Get-Process -? : Get-Process cmdlet에 대한 도움말을 표시합니다. - Get-Help About_Modules : Windows PowerShell 모듈에 대한 도움말을 표시합니다. - Get-Help 원격 : '원격'이라는 단어에 대한 도움말 항목을 검색합니다. - - 참고 항목: - about_Updatable_Help - Get-Help - Save-Help - Update-Help - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/ko-KR/powershell.exe.mui b/newton-cn/bin/v1.0/ko-KR/powershell.exe.mui deleted file mode 100644 index b9ca15ab27891b459cca538317f07fccd807592b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9728 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 diff --git a/newton-cn/bin/v1.0/ko-KR/pspluginwkr.dll.mui b/newton-cn/bin/v1.0/ko-KR/pspluginwkr.dll.mui deleted file mode 100644 index 4806e39976cdd96e1ac5453413e7fcee68519b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmd^CU1*b67=EL5^S`d>C@f>gQb&cYtN#_8i!M6rTHD#G+19ajNo}KP+9m0%P?#51 zidPPLA*>e_99T$QX|tKsC{0-MMM$^Skzzr?i^9Bc%)ta1L-)Mj$=7^|F|FWau+yIJ z{JrP>KhHU-`sfVJC!##mM~{g7Xt|iwZ|)D%E`M!gIr$cit@ax#$5z)h+ufqg)!O80 zXc5*1r?b@~K5rDRcBimAg}J&`w6xk9OP4KMT%2TWXum(TYvnhmwOZ-OKW)ai(y>@= z_uH+_yq2j+%`PI_DFfYAKHjUX-J>G0WZoh843G;nf<_o}3%Q@z(@#py%Pb7g`5B(Nw)937Sis^?SNTwjvI*@3QIS=ws)BA2Rbv^Q?^SHl-dC^jRH8#5oFU zeR@wzpJ}-(WwZ@@l(LCzIV(sgt0q~xo->~x{m$%?_$+F29?!b$7U}8cYEiFF&LOG= z!tKCW{uI4kXwCTU$B5fHtW@BH*HU&{ozxD5a3Fi<%BK@PJ{$K2o`e$}(5)*LM`S7^ z!N7P#5DnJ@Q)syCA`mJu?c)sp!}p2blHjv4HM|EjH9)^()JQI9+Kg7}l)^RUQyjGf z*a~Ct)@XMk9i50eAy?YaKu*|W44JQ<52xg7naKM88NBU%meL)Nt{-Y;$C;a*f92JiKzse2B5#>oKKR>PLZ&GDpnTFY$#)2Q;lN~vVoCfKz8Nl#YWMb! zuq)Hc9_3^p8^W3kUI<$81EbOhN`F*l;e&w-$WXakAWm1jgIMt>cQ0|CmR~l;G)&SEF~wcevv>YR zBAl37pz=W#ooj*0)hcFJ;JX`rE?4q?e<0KWsMIb{w_?5lGZJlx_TUw3n2~J;2e-P{4%!qI|8{VrI)Echs=mkY z@^w)u5QQ9F141YY@40I@`P0+3cw+MS-3q0+D+!m~t(N@$g zpxb~KHhW+b{?>w*N!6MCn~v@(sy2Zi8e3o~(rY>LexG&01*j=aGzLZaYdr#i&kn1SrHP z$oGm3b5>Z8J0C7WvqP%KZP;@R8uCmvyug~u{NSAAJLou8+0QMIM99GW$7E$jJ6Eik zhZ)s?6V(7&n$@YSCn{EdRo1DRI3eAU)QIm#E(Ljmc{MxC=8ApqSuDxU|7H9S>$Hk+ diff --git a/newton-cn/bin/v1.0/ko-KR/pwrshmsg.dll.mui b/newton-cn/bin/v1.0/ko-KR/pwrshmsg.dll.mui deleted file mode 100644 index cff46675b19f3ead59b0360dee0e0c671adb1397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKUrdu%6hGC@fdWB;hAbqzESSMEYl~=bAzO8I14e}aW8GplD^#dL3vE#(Jg{UW zE@Hy6B{Sj0hi%S;5rQs5QWDB6tq%}4#X#bs4=nL*#4)mm1@}Am_Jg+k889D~#jiQ{ z+ul9(E`#dEbzl^9}ML1NgVu^BM|ef$6;^K()_ z%3x5k8qy>b7DVaEv80$4Wb2;dX| z7dh%NgO8W@cmMh_V-BMdkk39xbZUESifh)1NvCFy`9RZrV!4)ubyjO@Yt4yTtVs~f zNIHDVGMbn)1KK2fl740xbD0Jb<@|XqcYk-2Y44S}?x|zu7j77~80SVTX;XKKyER{! z_u2DwGr+B(LnA#RYR?92!`cjtl9CM=NIt5Cbl@dwT!DUm1^VS>=sTcrK&g(=&-CyL z^hwaUfBJx@l|ytnlW6$)#r5$V=*5do+uux9dY6i5Y<_H>d`QU2{rTbqaLA%LB28msmyP~+&E>m;yHssv1Tu1m~z!cCVS$=JD zGr_)|jmU9)>$9f(GzGry--z6-zc9F7xdPDy=emp|89ehQKQmymN4M%8ydbQag3Bed90|D5Olnx2xFxKxK~-L<~R@O}Lh zb+tg3?cNajeAu5pA{KJ*3uP1ar4 zMZ^&K#bk`HE=$L00?r9zL`N%^~yiIGN%}Mp-fMyq+#2c3AF@$tv zq&#$buEd8ia&32k{w8=D@EvCd|2cSL$I2mXSfQyJdfns&oP-S_xjo=^gKh`KiJ1%B zZS)FsX|^rU;FYpY@Gf!@-uX*)mO;l^NO%xO9dJE<0(m-vxeL-I*sle}Dz$oHw-z%& z7RgDF$%?XFg*^|fYn~CJHsY>lFwsF7Ki~a)Ph``3;B(PoY6h;yO~mvA;9(i&GUE0( z;)hR3ZXbVx=nqO^EH^}vc(dd8XKScr;gJM5Q6I5}4KLaP(6RJG%MHz2zu_!%PK z%pA)poJSp%L6;lan^9k1RP@W$wijNh4A(&BEWBe%DKfw{QvJg{D^U4!*yX%7uqk>S zXE)wfd}UXvE6ZB|I-E8;>}b(0o(TRQs|QD=^uh(p^$~AWH{(BnzE59v$YLov`nJs$ JnfzbZe*=*)T*d$Z diff --git a/newton-cn/bin/v1.0/ko/powershell_ise.resources.dll b/newton-cn/bin/v1.0/ko/powershell_ise.resources.dll deleted file mode 100644 index 319a519796e9db00b5e7e6e56c4818597daa6585..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58368 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

S+3^p17XBYvZRV~JRIiXNq3 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 diff --git a/newton-cn/bin/v1.0/powershell.exe.config b/newton-cn/bin/v1.0/powershell.exe.config deleted file mode 100644 index 2db0c0f..0000000 --- a/newton-cn/bin/v1.0/powershell.exe.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/powershell_ise.exe b/newton-cn/bin/v1.0/powershell_ise.exe deleted file mode 100644 index 525c5702aa35f9d5a15829bbf96bee5eec8a2504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212992 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%0AlMUn3`Im^mkzC{TFKg{4nQi3;yOSPV-k^ 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 - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/pspluginwkr.dll b/newton-cn/bin/v1.0/pspluginwkr.dll deleted file mode 100644 index 954b903421b65767c1d26e06b0b80afb4ea86f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174592 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 diff --git a/newton-cn/bin/v1.0/pwrshsip.dll b/newton-cn/bin/v1.0/pwrshsip.dll deleted file mode 100644 index e9948fbc3e2ecb607c41fc449667faabea7086c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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 diff --git a/newton-cn/bin/v1.0/types.ps1xml b/newton-cn/bin/v1.0/types.ps1xml deleted file mode 100644 index 7be0db2..0000000 --- a/newton-cn/bin/v1.0/types.ps1xml +++ /dev/null @@ -1,6689 +0,0 @@ - - - - - - System.Array - - - Count - Length - - - - - System.Xml.XmlNode - - - ToString - - Microsoft.PowerShell.ToStringCodeMethods - XmlNode - - - - - - System.Xml.XmlNodeList - - - ToString - - Microsoft.PowerShell.ToStringCodeMethods - XmlNodeList - - - - - - System.Management.Automation.PSDriveInfo - - - Used - - ## Ensure that this is a FileSystem drive - if($this.Provider.ImplementingType -eq - [Microsoft.PowerShell.Commands.FileSystemProvider]) - { - $driveRoot = ([System.IO.DirectoryInfo] $this.Root).Name.Replace('\','') - $drive = Get-WmiObject Win32_LogicalDisk -Filter "DeviceId='$driveRoot'" - $drive.Size - $drive.FreeSpace - } - - - - Free - - ## Ensure that this is a FileSystem drive - if($this.Provider.ImplementingType -eq - [Microsoft.PowerShell.Commands.FileSystemProvider]) - { - $driveRoot = ([System.IO.DirectoryInfo] $this.Root).Root.Name.Replace('\','') - $drive = Get-WmiObject Win32_LogicalDisk -Filter "DeviceId='$driveRoot'" - $drive.FreeSpace - } - - - - - - System.DirectoryServices.PropertyValueCollection - - - ToString - - Microsoft.PowerShell.ToStringCodeMethods - PropertyValueCollection - - - - - - System.Drawing.Printing.PrintDocument - - - Name - $this.PrinterSettings.PrinterName - - - Color - $this.PrinterSettings.SupportsColor - - - Duplex - $this.PrinterSettings.Duplex - - - - - System.Management.Automation.ApplicationInfo - - - FileVersionInfo - [System.Diagnostics.FileVersionInfo]::getversioninfo( $this.Path ) - - - - - System.DateTime - - - DateTime - - if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq "Date") - { - "{0}" -f $this.ToLongDateString() - } - elseif ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq "Time") - { - "{0}" -f $this.ToLongTimeString() - } - else - { - "{0} {1}" -f $this.ToLongDateString(), $this.ToLongTimeString() - } - - - - - - System.Net.IPAddress - - - IPAddressToString - - $this.Tostring() - - - - PSStandardMembers - - - SerializationDepth - 1 - - - DefaultDisplayProperty - IPAddressToString - - - - - - - Deserialized.System.Net.IPAddress - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Diagnostics.ProcessModule - - - Size - $this.ModuleMemorySize / 1024 - - - Company - $this.FileVersionInfo.CompanyName - - - FileVersion - $this.FileVersionInfo.FileVersion - - - ProductVersion - $this.FileVersionInfo.ProductVersion - - - Description - $this.FileVersionInfo.FileDescription - - - Product - $this.FileVersionInfo.ProductName - - - - - System.Collections.DictionaryEntry - - - Name - Key - - - - - System.Management.Automation.PSModuleInfo - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - Path - Description - Guid - Version - ModuleBase - ModuleType - PrivateData - AccessMode - ExportedAliases - ExportedCmdlets - ExportedFunctions - ExportedVariables - NestedModules - - - - - - - - System.ServiceProcess.ServiceController - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Status - Name - DisplayName - - - - - - Name - ServiceName - - - RequiredServices - ServicesDependedOn - - - ToString - - - - - - Deserialized.System.ServiceProcess.ServiceController - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Status - Name - DisplayName - - - - - - - - - System.Management.Automation.CmdletInfo - - - DLL - $this.ImplementingType.Assembly.Location - - - - - System.Management.Automation.AliasInfo - - - ResolvedCommandName - $this.ResolvedCommand.Name - - - DisplayName - - if ($this.Name.IndexOf('-') -lt 0) - { - if ($this.ResolvedCommand -ne $null) - { - $this.Name + " -> " + $this.ResolvedCommand.Name - } - else - { - $this.Name + " -> " + $this.Definition - } - } - else - { - $this.Name - } - - - - - - System.DirectoryServices.DirectoryEntry - - - PSStandardMembers - - - DefaultDisplayPropertySet - - distinguishedName - Path - - - - - - ConvertLargeIntegerToInt64 - - Microsoft.PowerShell.AdapterCodeMethods - ConvertLargeIntegerToInt64 - - - - ConvertDNWithBinaryToString - - Microsoft.PowerShell.AdapterCodeMethods - ConvertDnWithBinaryToString - - - - - - System.IO.DirectoryInfo - - - Mode - - Microsoft.PowerShell.Commands.FileSystemProvider - Mode - - - - BaseName - - $this.Name - - - - PSStandardMembers - - - DefaultDisplayProperty - Name - - - - - - - System.IO.FileInfo - - - Mode - - Microsoft.PowerShell.Commands.FileSystemProvider - Mode - - - - VersionInfo - - [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName) - - - - BaseName - - if ($this.Extension.Length -gt 0){$this.Name.Remove($this.Name.Length - $this.Extension.Length)}else{$this.Name} - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - LastWriteTime - Length - Name - - - - - - - - System.Diagnostics.FileVersionInfo - - - FileVersionRaw - - New-Object System.Version -ArgumentList @( - $this.FileMajorPart - $this.FileMinorPart - $this.FileBuildPart - $this.FilePrivatePart) - - - - ProductVersionRaw - - New-Object System.Version -ArgumentList @( - $this.ProductMajorPart - $this.ProductMinorPart - $this.ProductBuildPart - $this.ProductPrivatePart) - - - - - - System.Diagnostics.EventLogEntry - - - EventID - - $this.get_EventID() -band 0xFFFF - - - - - - System.Management.ManagementBaseObject - - - PSComputerName - __SERVER - - - - - System.Management.ManagementObject#root\cimv2\Win32_PingStatus - - - IPV4Address - - $iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | ?{ $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | select -first 1 - - - - IPV6Address - - $iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | ?{ $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | select -first 1 - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Process - - - ProcessName - Name - - - Handles - Handlecount - - - VM - VirtualSize - - - WS - WorkingSetSize - - - Path - $this.ExecutablePath - - - - - System.Diagnostics.Process - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Id - Handles - CPU - SI - Name - - - - - - PSConfiguration - - Name - Id - PriorityClass - FileVersion - - - - PSResources - - Name - Id - Handlecount - WorkingSet - NonPagedMemorySize - PagedMemorySize - PrivateMemorySize - VirtualMemorySize - Threads.Count - TotalProcessorTime - - - - Name - ProcessName - - - SI - SessionId - - - Handles - Handlecount - - - VM - VirtualMemorySize64 - - - WS - WorkingSet64 - - - PM - PagedMemorySize64 - - - NPM - NonpagedSystemMemorySize64 - - - Path - $this.Mainmodule.FileName - - - Company - $this.Mainmodule.FileVersionInfo.CompanyName - - - CPU - $this.TotalProcessorTime.TotalSeconds - - - FileVersion - $this.Mainmodule.FileVersionInfo.FileVersion - - - ProductVersion - $this.Mainmodule.FileVersionInfo.ProductVersion - - - Description - $this.Mainmodule.FileVersionInfo.FileDescription - - - Product - $this.Mainmodule.FileVersionInfo.ProductName - - - __NounName - Process - - - - - Deserialized.System.Diagnostics.Process - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Id - Handles - CPU - Name - - - - - - PSConfiguration - - Name - Id - PriorityClass - FileVersion - - - - PSResources - - Name - Id - Handlecount - WorkingSet - NonPagedMemorySize - PagedMemorySize - PrivateMemorySize - VirtualMemorySize - Threads.Count - TotalProcessorTime - - - - - - System.Management.ManagementObject#root\cli\Msft_CliAlias - - - PSStandardMembers - - - DefaultDisplayPropertySet - - FriendlyName - PWhere - Target - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_BaseBoard - - - PSStatus - - Status - Name - PoweredOn - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Model - Name - SerialNumber - SKU - Product - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_BIOS - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SMBIOSBIOSVersion - Manufacturer - Name - SerialNumber - Version - - - - - - PSStatus - - Status - Name - Caption - SMBIOSPresent - - - - - - System.Management.ManagementObject#root\cimv2\Win32_BootConfiguration - - - PSStatus - - Name - SettingID - ConfigurationPath - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BootDirectory - Name - SettingID - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_CDROMDrive - - - PSStatus - - Availability - Drive - ErrorCleared - MediaLoaded - NeedsCleaning - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Drive - Manufacturer - VolumeName - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_ComputerSystem - - - PSStatus - - AdminPasswordStatus - BootupState - ChassisBootupState - KeyboardPasswordStatus - PowerOnPasswordStatus - PowerSupplyState - PowerState - FrontPanelResetStatus - ThermalState - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Domain - Manufacturer - Model - Name - PrimaryOwnerName - TotalPhysicalMemory - - - - - - POWER - - Name - PowerManagementCapabilities - PowerManagementSupported - PowerOnPasswordStatus - PowerState - PowerSupplyState - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_PROCESSOR - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - DeviceID - Manufacturer - MaxClockSpeed - Name - SocketDesignation - - - - - - PSStatus - - Availability - CpuStatus - CurrentVoltage - DeviceID - ErrorCleared - ErrorDescription - LastErrorCode - LoadPercentage - Status - StatusInfo - - - - PSConfiguration - - AddressWidth - DataWidth - DeviceID - ExtClock - L2CacheSize - L2CacheSpeed - MaxClockSpeed - PowerManagementSupported - ProcessorType - Revision - SocketDesignation - Version - VoltageCaps - - - - - - System.Management.ManagementObject#root\cimv2\Win32_ComputerSystemProduct - - - PSStatus - - Name - Version - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - IdentifyingNumber - Name - Vendor - Version - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\CIM_DataFile - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Compressed - Encrypted - Size - Hidden - Name - Readable - System - Version - Writeable - - - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_DCOMApplication - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AppID - InstallDate - Name - - - - - - PSStatus - - Name - Status - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_DESKTOP - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - ScreenSaverActive - ScreenSaverSecure - ScreenSaverTimeout - SettingID - - - - - - PSStatus - - Name - ScreenSaverActive - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_DESKTOPMONITOR - - - PSConfiguration - - DeviceID - Name - PixelsPerXLogicalInch - PixelsPerYLogicalInch - ScreenHeight - ScreenWidth - - - - PSStatus - - DeviceID - IsLocked - LastErrorCode - Name - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - DisplayType - MonitorManufacturer - Name - ScreenHeight - ScreenWidth - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_DeviceMemoryAddress - - - PSStatus - - Status - Name - MemoryType - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - MemoryType - Name - Status - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_DiskDrive - - - PSStatus - - ConfigManagerErrorCode - LastErrorCode - NeedsCleaning - Status - DeviceID - StatusInfo - Partitions - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Partitions - DeviceID - Model - Size - Caption - - - - - - PSConfiguration - - BytesPerSector - ConfigManagerUserConfig - DefaultBlockSize - DeviceID - Index - InstallDate - InterfaceType - MaxBlockSize - MaxMediaSize - MinBlockSize - NumberOfMediaSupported - Partitions - SectorsPerTrack - Size - TotalCylinders - TotalHeads - TotalSectors - TotalTracks - TracksPerCylinder - - - - - - System.Management.ManagementObject#root\cimv2\Win32_DiskQuota - - - PSStatus - - __PATH - Status - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DiskSpaceUsed - Limit - QuotaVolume - User - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_DMAChannel - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AddressSize - DMAChannel - MaxTransferSize - Name - Port - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Environment - - - PSStatus - - Status - Name - SystemVariable - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - VariableValue - Name - UserName - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Directory - - - PSStatus - - Status - Compressed - Encrypted - Name - Readable - Writeable - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Hidden - Archive - EightDotThreeFileName - FileSize - Name - Compressed - Encrypted - Readable - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Group - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Domain - Name - SID - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_IDEController - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Name - ProtocolSupported - Status - StatusInfo - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_IRQResource - - - PSStatus - - Status - Caption - Availability - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Hardware - IRQNumber - Name - Shareable - TriggerLevel - TriggerType - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_ScheduledJob - - - PSStatus - - Status - JobId - JobStatus - ElapsedTime - StartTime - Owner - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - JobId - Name - Owner - Priority - Command - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_LoadOrderGroup - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - GroupOrder - Name - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_LogicalDisk - - - PSStatus - - Status - Availability - DeviceID - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - DriveType - ProviderName - FreeSpace - Size - VolumeName - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_LogonSession - - - PSStatus - - __PATH - Status - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AuthenticationPackage - LogonId - LogonType - Name - StartTime - Status - - - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_CACHEMEMORY - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BlockSize - CacheSpeed - CacheType - DeviceID - InstalledSize - Level - MaxCacheSize - NumberOfBlocks - Status - - - - - - ERROR - - DeviceID - ErrorCorrectType - - - - PSStatus - - Availability - DeviceID - Status - StatusInfo - - - - PSConfiguration - - BlockSize - CacheSpeed - CacheType - DeviceID - InstalledSize - Level - MaxCacheSize - NumberOfBlocks - Status - WritePolicy - - - - - - System.Management.ManagementObject#root\cimv2\Win32_LogicalMemoryConfiguration - - - PSStatus - - AvailableVirtualMemory - Name - TotalVirtualMemory - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - TotalVirtualMemory - TotalPhysicalMemory - TotalPageFileSpace - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PhysicalMemoryArray - - - PSStatus - - Status - Name - Replaceable - Location - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Model - Name - MaxCapacity - MemoryDevices - - - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_NetworkClient - - - PSStatus - - Name - Status - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - InstallDate - Manufacturer - Name - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NetworkLoginProfile - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Privileges - Profile - UserId - UserType - Workstations - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NetworkProtocol - - - FULLXXX - - ConnectionlessService - Description - GuaranteesDelivery - GuaranteesSequencing - InstallDate - MaximumAddressSize - MaximumMessageSize - MessageOriented - MinimumAddressSize - Name - PseudoStreamOriented - Status - SupportsBroadcasting - SupportsConnectData - SupportsDisconnectData - SupportsEncryption - SupportsExpeditedData - SupportsFragmentation - SupportsGracefulClosing - SupportsGuaranteedBandwidth - SupportsMulticasting - SupportsQualityofService - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - GuaranteesDelivery - GuaranteesSequencing - ConnectionlessService - Status - Name - - - - - - PSStatus - - Name - Status - SupportsBroadcasting - SupportsConnectData - SupportsDisconnectData - SupportsEncryption - SupportsExpeditedData - SupportsFragmentation - SupportsGracefulClosing - SupportsGuaranteedBandwidth - SupportsMulticasting - SupportsQualityofService - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NetworkConnection - - - PSStatus - - Status - ConnectionState - Persistent - LocalName - RemoteName - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - LocalName - RemoteName - ConnectionState - Status - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapter - - - PSStatus - - Availability - Name - Status - StatusInfo - DeviceID - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ServiceName - MACAddress - AdapterType - DeviceID - Name - NetworkAddresses - Speed - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration - - - PSStatus - - DHCPLeaseExpires - Index - Description - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DHCPEnabled - IPAddress - DefaultIPGateway - DNSDomain - ServiceName - Description - Index - - - - - - DHCP - - Description - DHCPEnabled - DHCPLeaseExpires - DHCPLeaseObtained - DHCPServer - Index - - - - DNS - - Description - DNSDomain - DNSDomainSuffixSearchOrder - DNSEnabledForWINSResolution - DNSHostName - DNSServerSearchOrder - DomainDNSRegistrationEnabled - FullDNSRegistrationEnabled - Index - - - - IP - - Description - Index - IPAddress - IPConnectionMetric - IPEnabled - IPFilterSecurityEnabled - - - - WINS - - Description - Index - WINSEnableLMHostsLookup - WINSHostLookupFile - WINSPrimaryServer - WINSScopeID - WINSSecondaryServer - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NTDomain - - - PSStatus - - Status - DomainName - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ClientSiteName - DcSiteName - Description - DnsForestName - DomainControllerAddress - DomainControllerName - DomainName - Roles - Status - - - - - - GUID - - DomainName - DomainGuid - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NTLogEvent - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Category - CategoryString - EventCode - EventIdentifier - TypeEvent - InsertionStrings - LogFile - Message - RecordNumber - SourceName - TimeGenerated - TimeWritten - Type - UserName - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_NTEventlogFile - - - PSStatus - - Status - LogfileName - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - FileSize - LogfileName - Name - NumberOfRecords - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_OnBoardDevice - - - PSStatus - - Status - Description - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceType - SerialNumber - Enabled - Description - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem - - - PSStatus - - Status - Name - - - - FREE - - FreePhysicalMemory - FreeSpaceInPagingFiles - FreeVirtualMemory - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SystemDirectory - Organization - BuildNumber - RegisteredUser - SerialNumber - Version - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PageFileUsage - - - PSStatus - - Status - Name - CurrentUsage - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - PeakUsage - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PageFileSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - MaximumSize - Name - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_DiskPartition - - - PSStatus - - Index - Status - StatusInfo - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - NumberOfBlocks - BootPartition - Name - PrimaryPartition - Size - Index - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PortResource - - - PSStatus - - NetConnectionStatus - Status - Name - StartingAddress - EndingAddress - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - Alias - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PortConnector - - - PSStatus - - Status - Name - ExternalReferenceDesignator - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Tag - ConnectorType - SerialNumber - ExternalReferenceDesignator - PortType - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Printer - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Location - Name - PrinterState - PrinterStatus - ShareName - SystemName - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PrinterConfiguration - - - PSStatus - - DriverVersion - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - PrintQuality - DriverVersion - Name - PaperSize - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PrintJob - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Document - JobId - JobStatus - Owner - Priority - Size - Name - - - - - - PSStatus - - Document - JobId - JobStatus - Name - PagesPrinted - Status - JobIdCopy - Name - - - - - - System.Management.ManagementObject#root\cimv2\Win32_ProcessXXX - - - PSStatus - - Status - Name - ProcessId - - - - MEMORY - - Handle - MaximumWorkingSetSize - MinimumWorkingSetSize - Name - PageFaults - PageFileUsage - PeakPageFileUsage - PeakVirtualSize - PeakWorkingSetSize - PrivatePageCount - QuotaNonPagedPoolUsage - QuotaPagedPoolUsage - QuotaPeakNonPagedPoolUsage - QuotaPeakPagedPoolUsage - VirtualSize - WorkingSetSize - - - - IO - - Name - ProcessId - ReadOperationCount - ReadTransferCount - WriteOperationCount - WriteTransferCount - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ThreadCount - HandleCount - Name - Priority - ProcessId - WorkingSetSize - - - - - - STATISTICS - - HandleCount - Name - KernelModeTime - MaximumWorkingSetSize - MinimumWorkingSetSize - OtherOperationCount - OtherTransferCount - PageFaults - PageFileUsage - PeakPageFileUsage - PeakVirtualSize - PeakWorkingSetSize - PrivatePageCount - ProcessId - QuotaNonPagedPoolUsage - QuotaPagedPoolUsage - QuotaPeakNonPagedPoolUsage - QuotaPeakPagedPoolUsage - ReadOperationCount - ReadTransferCount - ThreadCount - UserModeTime - VirtualSize - WorkingSetSize - WriteOperationCount - WriteTransferCount - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Product - - - PSStatus - - Name - Version - InstallState - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - IdentifyingNumber - Name - Vendor - Version - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_QuickFixEngineering - - - InstalledOn - - if ([environment]::osversion.version.build -ge 7000) - { - # WMI team fixed the formatting issue related to InstalledOn - # property in Windows7 (to return string)..so returning the WMI's - # version directly - [DateTime]::Parse($this.psBase.properties["InstalledOn"].Value) - } - else - { - $orig = $this.psBase.properties["InstalledOn"].Value - $date = [datetime]::FromFileTimeUTC($("0x" + $orig)) - if ($date -lt "1/1/1980") - { - if ($orig -match "([0-9]{4})([01][0-9])([012][0-9])") - { - new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) - } - } - else - { - $date - } - } - - - - PSStatus - - __PATH - Status - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Description - FixComments - HotFixID - InstallDate - InstalledBy - InstalledOn - Name - ServicePackInEffect - Status - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_QuotaSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - DefaultLimit - SettingID - State - VolumePath - DefaultWarningLimit - - - - - - PSStatus - - State - VolumePath - Caption - - - - - - System.Management.ManagementObject#root\cimv2\Win32_OSRecoveryConfiguration - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DebugFilePath - Name - SettingID - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Registry - - - PSStatus - - Status - CurrentSize - MaximumSize - ProposedSize - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - CurrentSize - MaximumSize - Name - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SCSIController - - - PSStatus - - Status - Name - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DriverName - Manufacturer - Name - ProtocolSupported - Status - StatusInfo - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_PerfRawData_PerfNet_Server - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - LogonPerSec - LogonTotal - Name - ServerSessions - WorkItemShortages - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Service - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ExitCode - Name - ProcessId - StartMode - State - Status - - - - - - PSStatus - - Name - Status - ExitCode - - - - PSConfiguration - - DesktopInteract - ErrorControl - Name - PathName - ServiceType - StartMode - - - - - - System.Management.ManagementObject#root\cimv2\Win32_Share - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - Path - Description - - - - - - PSStatus - - Status - Type - Name - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SoftwareElement - - - PSStatus - - Status - SoftwareElementState - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - Path - SerialNumber - SoftwareElementID - Version - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SoftwareFeature - - - PSStatus - - Status - Name - InstallState - LastUse - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - IdentifyingNumber - ProductName - Vendor - Version - - - - - - - - System.Management.ManagementObject#root\cimv2\WIN32_SoundDevice - - - PSStatus - - ConfigManagerUserConfig - Name - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Name - Status - StatusInfo - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_StartupCommand - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Command - User - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SystemAccount - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Domain - Name - SID - - - - - - PSStatus - - Status - SIDType - Name - Domain - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SystemDriver - - - PSStatus - - Status - Name - State - ExitCode - Started - ServiceSpecificExitCode - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DisplayName - Name - State - Status - Started - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SystemEnclosure - - - PSStatus - - Tag - Status - Name - SecurityStatus - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Model - LockPresent - SerialNumber - SMBIOSAssetTag - SecurityStatus - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_SystemSlot - - - PSStatus - - Status - SlotDesignation - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SlotDesignation - Tag - SupportsHotPlug - Status - Shared - PMESignal - MaxDataWidth - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_TapeDrive - - - PSStatus - - Status - Availability - DeviceID - NeedsCleaning - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - Id - Manufacturer - Name - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_TemperatureProbe - - - PSStatus - - Status - CurrentReading - DeviceID - Name - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - CurrentReading - Name - Description - MinReadable - MaxReadable - Status - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_TimeZone - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Bias - SettingID - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_UninterruptiblePowerSupply - - - PSStatus - - Status - DeviceID - EstimatedChargeRemaining - EstimatedRunTime - Name - StatusInfo - TimeOnBackup - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - EstimatedRunTime - Name - TimeOnBackup - UPSPort - Caption - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_UserAccount - - - PSStatus - - Status - Caption - PasswordExpires - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AccountType - Caption - Domain - SID - FullName - Name - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_VoltageProbe - - - PSStatus - - Status - DeviceID - Name - NominalReading - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Status - Description - CurrentReading - MaxReadable - MinReadable - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_VolumeQuotaSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Element - Setting - - - - - - - - System.Management.ManagementObject#root\cimv2\Win32_WMISetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BuildVersion - Caption - DatabaseDirectory - EnableEvents - LoggingLevel - SettingID - - - - - - - - System.Management.ManagementObject - - - ConvertToDateTime - - - - ConvertFromDateTime - - - - - - System.Security.AccessControl.ObjectSecurity - - - Path - - Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase - GetPath - - - - Owner - - Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase - GetOwner - - - - Group - - Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase - GetGroup - - - - Access - - Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase - GetAccess - - - - Sddl - - Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase - GetSddl - - - - AccessToString - - $toString = ""; - $first = $true; - if ( ! $this.Access ) { return "" } - foreach($ace in $this.Access) - { - if($first) - { - $first = $false; - } - else - { - $tostring += "`n"; - } - $toString += $ace.IdentityReference.ToString(); - $toString += " "; - $toString += $ace.AccessControlType.ToString(); - $toString += " "; - if($ace -is [System.Security.AccessControl.FileSystemAccessRule]) - { - $toString += $ace.FileSystemRights.ToString(); - } - elseif($ace -is [System.Security.AccessControl.RegistryAccessRule]) - { - $toString += $ace.RegistryRights.ToString(); - } - } - return $toString; - - - - AuditToString - - $toString = ""; - $first = $true; - if ( ! (& { Set-StrictMode -Version 1; $this.audit }) ) { return "" } - foreach($ace in (& { Set-StrictMode -Version 1; $this.audit })) - { - if($first) - { - $first = $false; - } - else - { - $tostring += "`n"; - } - $toString += $ace.IdentityReference.ToString(); - $toString += " "; - $toString += $ace.AuditFlags.ToString(); - $toString += " "; - if($ace -is [System.Security.AccessControl.FileSystemAuditRule]) - { - $toString += $ace.FileSystemRights.ToString(); - } - elseif($ace -is [System.Security.AccessControl.RegistryAuditRule]) - { - $toString += $ace.RegistryRights.ToString(); - } - } - return $toString; - - - - - - Microsoft.PowerShell.Commands.HistoryInfo - - - PSStandardMembers - - - DefaultKeyPropertySet - - Id - - - - - - - - System.Management.ManagementClass - - - Name - __Class - - - - - System.Management.Automation.Runspaces.PSSession - - - State - $this.Runspace.RunspaceStateInfo.State - - - IdleTimeout - $this.Runspace.ConnectionInfo.IdleTimeout - - - OutputBufferingMode - $this.Runspace.ConnectionInfo.OutputBufferingMode - - - DisconnectedOn - $this.Runspace.DisconnectedOn - - - ExpiresOn - $this.Runspace.ExpiresOn - - - - - System.Guid - - - Guid - $this.ToString() - - - - - System.Management.Automation.Signature - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - System.Management.Automation.Job - - - PSStandardMembers - - - SerializationDepth - 2 - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - HasMoreData - StatusMessage - Location - Command - JobStateInfo - InstanceId - Id - Name - State - ChildJobs - PSJobTypeName - PSBeginTime - PSEndTime - - - - - - State - $this.JobStateInfo.State.ToString() - - - - - System.Management.Automation.JobStateInfo - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.JobStateInfo - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - Microsoft.PowerShell.DeserializingTypeConverter - - Microsoft.PowerShell.DeserializingTypeConverter - - - - System.Net.Mail.MailAddress - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Net.Mail.MailAddress - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Globalization.CultureInfo - - - PSStandardMembers - - - SerializationDepth - 1 - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - LCID - Name - DisplayName - IetfLanguageTag - ThreeLetterISOLanguageName - ThreeLetterWindowsLanguageName - TwoLetterISOLanguageName - - - - - - - - Deserialized.System.Globalization.CultureInfo - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.PSCredential - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.PSCredential - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.PSPrimitiveDictionary - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.PSPrimitiveDictionary - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.SwitchParameter - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.SwitchParameter - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.PSListModifier - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - Deserialized.System.Management.Automation.PSListModifier - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Security.Cryptography.X509Certificates.X509Certificate2 - - - PSStandardMembers - - - SerializationDepth - 1 - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - RawData - - - - - - - - Deserialized.System.Security.Cryptography.X509Certificates.X509Certificate2 - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Security.Cryptography.X509Certificates.X500DistinguishedName - - - PSStandardMembers - - - SerializationDepth - 1 - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - RawData - - - - - - - - Deserialized.System.Security.Cryptography.X509Certificates.X500DistinguishedName - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Security.AccessControl.RegistrySecurity - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Security.AccessControl.RegistrySecurity - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Security.AccessControl.FileSystemSecurity - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Security.AccessControl.FileSystemSecurity - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - HelpInfo - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - System.Management.Automation.PSTypeName - - - PSStandardMembers - - - SerializationMethod - String - - - StringSerializationSource - Name - - - - - - - System.Management.Automation.ParameterMetadata - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - Name - ParameterType - Aliases - IsDynamic - SwitchParameter - - - - - - - - System.Management.Automation.CommandInfo - - - Namespace - ModuleName - - - HelpUri - - $oldProgressPreference = $ProgressPreference - $ProgressPreference = 'SilentlyContinue' - try - { - if ($psversiontable.psversion.Major -lt 3) - { - # ok to cast CommandTypes enum to HelpCategory because string/indentifier for - # cmdlet,function,filter,alias,externalscript is identical. - # it is ok to fail for other enum values (i.e. for Application) - $commandName = $this.Name - if ($this.ModuleName) - { - $commandName = "{0}\{1}" -f $this.ModuleName,$commandName - } - - $helpObject = get-help -Name $commandName -Category ([string]($this.CommandType)) -ErrorAction SilentlyContinue - - # return first non-null uri (and try not to hit any strict mode things) - if ($helpObject -eq $null) { return $null } - if ($helpObject.psobject.properties['relatedLinks'] -eq $null) { return $null } - if ($helpObject.relatedLinks.psobject.properties['navigationLink'] -eq $null) { return $null } - $helpUri = [string]$( $helpObject.relatedLinks.navigationLink | %{ if ($_.psobject.properties['uri'] -ne $null) { $_.uri } } | ?{ $_ } | select -first 1 ) - return $helpUri - } - else - { - [Microsoft.PowerShell.Commands.GetHelpCodeMethods]::GetHelpUri($this) - } - } - catch {} - finally - { - $ProgressPreference = $oldProgressPreference - } - - - - - - System.Management.Automation.ParameterSetMetadata - - - Flags - - Microsoft.PowerShell.DeserializingTypeConverter - GetParameterSetMetadataFlags - - - - PSStandardMembers - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - Position - Flags - HelpMessage - - - - - - - - Deserialized.System.Management.Automation.ParameterSetMetadata - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - Deserialized.System.Management.Automation.ExtendedTypeDefinition - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.ExtendedTypeDefinition - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.FormatViewDefinition - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.FormatViewDefinition - - - InstanceId - - Microsoft.PowerShell.DeserializingTypeConverter - GetFormatViewDefinitionInstanceId - - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.PSControl - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.PSControl - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.DisplayEntry - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.DisplayEntry - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.TableControlColumnHeader - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.TableControlColumnHeader - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.TableControlRow - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.TableControlRow - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.TableControlColumn - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.TableControlColumn - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.ListControlEntry - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.ListControlEntry - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.ListControlEntryItem - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.ListControlEntryItem - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.WideControlEntryItem - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.WideControlEntryItem - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - System.Web.Services.Protocols.SoapException - - - PSMessageDetails - $this.Detail."#text" - - - - - System.Management.Automation.ErrorRecord - - - PSMessageDetails - & { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails } - - - - - Deserialized.System.Enum - - - Value - $this.ToString() - - - - - Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.Microsoft.PowerShell.Commands.Internal.Format.FormatInfoData - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - System.Management.ManagementEventArgs - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - Deserialized.System.Management.ManagementEventArgs - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - System.Management.Automation.CallStackFrame - - - Command - - if ($this.InvocationInfo -eq $null) { return $this.FunctionName } - $commandInfo = $this.InvocationInfo.MyCommand - if ($commandInfo -eq $null) { return $this.InvocationInfo.InvocationName } - if ($commandInfo.Name -ne "") { return $commandInfo.Name } - return $this.FunctionName - - - - Location - - $this.GetScriptLocation() - - - - Arguments - - $argumentsBuilder = new-object System.Text.StringBuilder - - $null = $( - $argumentsBuilder.Append("{") - foreach ($entry in $this.InvocationInfo.BoundParameters.GetEnumerator()) - { - if ($argumentsBuilder.Length -gt 1) - { - $argumentsBuilder.Append(", "); - } - - $argumentsBuilder.Append($entry.Key).Append("=") - - if ($entry.Value) - { - $argumentsBuilder.Append([string]$entry.Value) - } - } - - foreach ($arg in $this.InvocationInfo.UnboundArguments.GetEnumerator()) - { - if ($argumentsBuilder.Length -gt 1) - { - $argumentsBuilder.Append(", ") - } - if ($arg) - { - $argumentsBuilder.Append([string]$arg) - } - else - { - $argumentsBuilder.Append('$null') - } - } - - $argumentsBuilder.Append('}'); - ) - - return $argumentsBuilder.ToString(); - - - - - - Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration - - - Permission - - trap { continue; } - $private:sd = $null - $private:sd = new-object System.Security.AccessControl.CommonSecurityDescriptor $false,$false,$this.SecurityDescriptorSddl - if ($private:sd) - { - # reset trap - trap { } - $private:dacls = ""; - $private:first = $true - $private:sd.DiscretionaryAcl | % { - trap { } - if ($private:first) - { - $private:first = $false; - } - else - { - $private:dacls += ", " - } - $private:dacls += $_.SecurityIdentifier.Translate([System.Security.Principal.NTAccount]).ToString() + " " + $_.AceType - } # end of foreach - - return $private:dacls - } - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PingStatus - - - IPV4Address - - $iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | ?{ $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | select -first 1 - - - - IPV6Address - - $iphost = [System.Net.Dns]::GetHostEntry($this.address) - $iphost.AddressList | ?{ $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetworkV6 } | select -first 1 - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Process - - - ProcessName - Name - - - Handles - Handlecount - - - VM - VirtualSize - - - WS - WorkingSetSize - - - Path - $this.ExecutablePath - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ProcessId - Name - HandleCount - WorkingSetSize - VirtualSize - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Msft_CliAlias - - - PSStandardMembers - - - DefaultDisplayPropertySet - - FriendlyName - PWhere - Target - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BaseBoard - - - PSStatus - - Status - Name - PoweredOn - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Model - Name - SerialNumber - SKU - Product - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BIOS - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SMBIOSBIOSVersion - Manufacturer - Name - SerialNumber - Version - - - - - - PSStatus - - Status - Name - Caption - SMBIOSPresent - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_BootConfiguration - - - PSStatus - - Name - SettingID - ConfigurationPath - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BootDirectory - Name - SettingID - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_CDROMDrive - - - PSStatus - - Availability - Drive - ErrorCleared - MediaLoaded - NeedsCleaning - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Drive - Manufacturer - VolumeName - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystem - - - PSStatus - - AdminPasswordStatus - BootupState - ChassisBootupState - KeyboardPasswordStatus - PowerOnPasswordStatus - PowerSupplyState - PowerState - FrontPanelResetStatus - ThermalState - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Domain - Manufacturer - Model - Name - PrimaryOwnerName - TotalPhysicalMemory - - - - - - POWER - - Name - PowerManagementCapabilities - PowerManagementSupported - PowerOnPasswordStatus - PowerState - PowerSupplyState - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_PROCESSOR - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - DeviceID - Manufacturer - MaxClockSpeed - Name - SocketDesignation - - - - - - PSStatus - - Availability - CpuStatus - CurrentVoltage - DeviceID - ErrorCleared - ErrorDescription - LastErrorCode - LoadPercentage - Status - StatusInfo - - - - PSConfiguration - - AddressWidth - DataWidth - DeviceID - ExtClock - L2CacheSize - L2CacheSpeed - MaxClockSpeed - PowerManagementSupported - ProcessorType - Revision - SocketDesignation - Version - VoltageCaps - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ComputerSystemProduct - - - PSStatus - - Name - Version - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - IdentifyingNumber - Name - Vendor - Version - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/CIM_DataFile - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Compressed - Encrypted - Size - Hidden - Name - Readable - System - Version - Writeable - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DCOMApplication - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AppID - InstallDate - Name - - - - - - PSStatus - - Name - Status - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOP - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - ScreenSaverActive - ScreenSaverSecure - ScreenSaverTimeout - SettingID - - - - - - PSStatus - - Name - ScreenSaverActive - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_DESKTOPMONITOR - - - PSConfiguration - - DeviceID - Name - PixelsPerXLogicalInch - PixelsPerYLogicalInch - ScreenHeight - ScreenWidth - - - - PSStatus - - DeviceID - IsLocked - LastErrorCode - Name - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - DisplayType - MonitorManufacturer - Name - ScreenHeight - ScreenWidth - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DeviceMemoryAddress - - - PSStatus - - Status - Name - MemoryType - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - MemoryType - Name - Status - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskDrive - - - PSStatus - - ConfigManagerErrorCode - LastErrorCode - NeedsCleaning - Status - DeviceID - StatusInfo - Partitions - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Partitions - DeviceID - Model - Size - Caption - - - - - - PSConfiguration - - BytesPerSector - ConfigManagerUserConfig - DefaultBlockSize - DeviceID - Index - InstallDate - InterfaceType - MaxBlockSize - MaxMediaSize - MinBlockSize - NumberOfMediaSupported - Partitions - SectorsPerTrack - Size - TotalCylinders - TotalHeads - TotalSectors - TotalTracks - TracksPerCylinder - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskQuota - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DiskSpaceUsed - Limit - QuotaVolume - User - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DMAChannel - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AddressSize - DMAChannel - MaxTransferSize - Name - Port - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Environment - - - PSStatus - - Status - Name - SystemVariable - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - VariableValue - Name - UserName - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Directory - - - PSStatus - - Status - Compressed - Encrypted - Name - Readable - Writeable - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Hidden - Archive - EightDotThreeFileName - FileSize - Name - Compressed - Encrypted - Readable - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Group - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Domain - Name - SID - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IDEController - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Name - ProtocolSupported - Status - StatusInfo - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_IRQResource - - - PSStatus - - Status - Caption - Availability - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Hardware - IRQNumber - Name - Shareable - TriggerLevel - TriggerType - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ScheduledJob - - - PSStatus - - Status - JobId - JobStatus - ElapsedTime - StartTime - Owner - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - JobId - Name - Owner - Priority - Command - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LoadOrderGroup - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - GroupOrder - Name - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalDisk - - - PSStatus - - Status - Availability - DeviceID - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - DriveType - ProviderName - FreeSpace - Size - VolumeName - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogonSession - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AuthenticationPackage - LogonId - LogonType - Name - StartTime - Status - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_CACHEMEMORY - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BlockSize - CacheSpeed - CacheType - DeviceID - InstalledSize - Level - MaxCacheSize - NumberOfBlocks - Status - - - - - - ERROR - - DeviceID - ErrorCorrectType - - - - PSStatus - - Availability - DeviceID - Status - StatusInfo - - - - PSConfiguration - - BlockSize - CacheSpeed - CacheType - DeviceID - InstalledSize - Level - MaxCacheSize - NumberOfBlocks - Status - WritePolicy - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_LogicalMemoryConfiguration - - - PSStatus - - AvailableVirtualMemory - Name - TotalVirtualMemory - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - TotalVirtualMemory - TotalPhysicalMemory - TotalPageFileSpace - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PhysicalMemoryArray - - - PSStatus - - Status - Name - Replaceable - Location - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Model - Name - MaxCapacity - MemoryDevices - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_NetworkClient - - - PSStatus - - Name - Status - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - InstallDate - Manufacturer - Name - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkLoginProfile - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Privileges - Profile - UserId - UserType - Workstations - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkProtocol - - - FULLXXX - - ConnectionlessService - Description - GuaranteesDelivery - GuaranteesSequencing - InstallDate - MaximumAddressSize - MaximumMessageSize - MessageOriented - MinimumAddressSize - Name - PseudoStreamOriented - Status - SupportsBroadcasting - SupportsConnectData - SupportsDisconnectData - SupportsEncryption - SupportsExpeditedData - SupportsFragmentation - SupportsGracefulClosing - SupportsGuaranteedBandwidth - SupportsMulticasting - SupportsQualityofService - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - GuaranteesDelivery - GuaranteesSequencing - ConnectionlessService - Status - Name - - - - - - PSStatus - - Name - Status - SupportsBroadcasting - SupportsConnectData - SupportsDisconnectData - SupportsEncryption - SupportsExpeditedData - SupportsFragmentation - SupportsGracefulClosing - SupportsGuaranteedBandwidth - SupportsMulticasting - SupportsQualityofService - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkConnection - - - PSStatus - - Status - ConnectionState - Persistent - LocalName - RemoteName - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - LocalName - RemoteName - ConnectionState - Status - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapter - - - PSStatus - - Availability - Name - Status - StatusInfo - DeviceID - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ServiceName - MACAddress - AdapterType - DeviceID - Name - NetworkAddresses - Speed - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration - - - PSStatus - - DHCPLeaseExpires - Index - Description - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DHCPEnabled - IPAddress - DefaultIPGateway - DNSDomain - ServiceName - Description - Index - - - - - - DHCP - - Description - DHCPEnabled - DHCPLeaseExpires - DHCPLeaseObtained - DHCPServer - Index - - - - DNS - - Description - DNSDomain - DNSDomainSuffixSearchOrder - DNSEnabledForWINSResolution - DNSHostName - DNSServerSearchOrder - DomainDNSRegistrationEnabled - FullDNSRegistrationEnabled - Index - - - - IP - - Description - Index - IPAddress - IPConnectionMetric - IPEnabled - IPFilterSecurityEnabled - - - - WINS - - Description - Index - WINSEnableLMHostsLookup - WINSHostLookupFile - WINSPrimaryServer - WINSScopeID - WINSSecondaryServer - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTDomain - - - PSStatus - - Status - DomainName - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ClientSiteName - DcSiteName - Description - DnsForestName - DomainControllerAddress - DomainControllerName - DomainName - Roles - Status - - - - - - GUID - - DomainName - DomainGuid - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTLogEvent - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Category - CategoryString - EventCode - EventIdentifier - TypeEvent - InsertionStrings - LogFile - Message - RecordNumber - SourceName - TimeGenerated - TimeWritten - Type - UserName - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NTEventlogFile - - - PSStatus - - Status - LogfileName - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - FileSize - LogfileName - Name - NumberOfRecords - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OnBoardDevice - - - PSStatus - - Status - Description - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceType - SerialNumber - Enabled - Description - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem - - - PSStatus - - Status - Name - - - - FREE - - FreePhysicalMemory - FreeSpaceInPagingFiles - FreeVirtualMemory - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SystemDirectory - Organization - BuildNumber - RegisteredUser - SerialNumber - Version - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileUsage - - - PSStatus - - Status - Name - CurrentUsage - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - PeakUsage - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PageFileSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - MaximumSize - Name - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_DiskPartition - - - PSStatus - - Index - Status - StatusInfo - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - NumberOfBlocks - BootPartition - Name - PrimaryPartition - Size - Index - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortResource - - - PSStatus - - NetConnectionStatus - Status - Name - StartingAddress - EndingAddress - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - Alias - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PortConnector - - - PSStatus - - Status - Name - ExternalReferenceDesignator - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Tag - ConnectorType - SerialNumber - ExternalReferenceDesignator - PortType - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Printer - - - PSStatus - - Status - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Location - Name - PrinterState - PrinterStatus - ShareName - SystemName - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrinterConfiguration - - - PSStatus - - DriverVersion - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - PrintQuality - DriverVersion - Name - PaperSize - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PrintJob - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Document - JobId - JobStatus - Owner - Priority - Size - Name - - - - - - PSStatus - - Document - JobId - JobStatus - Name - PagesPrinted - Status - JobIdCopy - Name - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_ProcessXXX - - - PSStatus - - Status - Name - ProcessId - - - - MEMORY - - Handle - MaximumWorkingSetSize - MinimumWorkingSetSize - Name - PageFaults - PageFileUsage - PeakPageFileUsage - PeakVirtualSize - PeakWorkingSetSize - PrivatePageCount - QuotaNonPagedPoolUsage - QuotaPagedPoolUsage - QuotaPeakNonPagedPoolUsage - QuotaPeakPagedPoolUsage - VirtualSize - WorkingSetSize - - - - IO - - Name - ProcessId - ReadOperationCount - ReadTransferCount - WriteOperationCount - WriteTransferCount - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ThreadCount - HandleCount - Name - Priority - ProcessId - WorkingSetSize - - - - - - STATISTICS - - HandleCount - Name - KernelModeTime - MaximumWorkingSetSize - MinimumWorkingSetSize - OtherOperationCount - OtherTransferCount - PageFaults - PageFileUsage - PeakPageFileUsage - PeakVirtualSize - PeakWorkingSetSize - PrivatePageCount - ProcessId - QuotaNonPagedPoolUsage - QuotaPagedPoolUsage - QuotaPeakNonPagedPoolUsage - QuotaPeakPagedPoolUsage - ReadOperationCount - ReadTransferCount - ThreadCount - UserModeTime - VirtualSize - WorkingSetSize - WriteOperationCount - WriteTransferCount - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Product - - - PSStatus - - Name - Version - InstallState - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - IdentifyingNumber - Name - Vendor - Version - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuickFixEngineering - - - InstalledOn - - if ([environment]::osversion.version.build -ge 7000) - { - # WMI team fixed the formatting issue related to InstalledOn - # property in Windows7 (to return string)..so returning the WMI's - # version directly - [DateTime]::Parse($this.psBase.CimInstanceProperties["InstalledOn"].Value) - } - else - { - $orig = $this.psBase.CimInstanceProperties["InstalledOn"].Value - $date = [datetime]::FromFileTimeUTC($("0x" + $orig)) - if ($date -lt "1/1/1980") - { - if ($orig -match "([0-9]{4})([01][0-9])([012][0-9])") - { - new-object datetime @([int]$matches[1], [int]$matches[2], [int]$matches[3]) - } - } - else - { - $date - } - } - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Description - FixComments - HotFixID - InstallDate - InstalledBy - InstalledOn - Name - ServicePackInEffect - Status - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_QuotaSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - DefaultLimit - SettingID - State - VolumePath - DefaultWarningLimit - - - - - - PSStatus - - State - VolumePath - Caption - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OSRecoveryConfiguration - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DebugFilePath - Name - SettingID - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Registry - - - PSStatus - - Status - CurrentSize - MaximumSize - ProposedSize - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - CurrentSize - MaximumSize - Name - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SCSIController - - - PSStatus - - Status - Name - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DriverName - Manufacturer - Name - ProtocolSupported - Status - StatusInfo - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_PerfRawData_PerfNet_Server - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - LogonPerSec - LogonTotal - Name - ServerSessions - WorkItemShortages - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Service - - - PSStandardMembers - - - DefaultDisplayPropertySet - - ExitCode - Name - ProcessId - StartMode - State - Status - - - - - - PSStatus - - Name - Status - ExitCode - - - - PSConfiguration - - DesktopInteract - ErrorControl - Name - PathName - ServiceType - StartMode - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_Share - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Name - Path - Description - - - - - - PSStatus - - Status - Type - Name - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareElement - - - PSStatus - - Status - SoftwareElementState - Name - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Name - Path - SerialNumber - SoftwareElementID - Version - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SoftwareFeature - - - PSStatus - - Status - Name - InstallState - LastUse - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - IdentifyingNumber - ProductName - Vendor - Version - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/WIN32_SoundDevice - - - PSStatus - - ConfigManagerUserConfig - Name - Status - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Name - Status - StatusInfo - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_StartupCommand - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Command - User - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemAccount - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Caption - Domain - Name - SID - - - - - - PSStatus - - Status - SIDType - Name - Domain - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemDriver - - - PSStatus - - Status - Name - State - ExitCode - Started - ServiceSpecificExitCode - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DisplayName - Name - State - Status - Started - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemEnclosure - - - PSStatus - - Tag - Status - Name - SecurityStatus - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Manufacturer - Model - LockPresent - SerialNumber - SMBIOSAssetTag - SecurityStatus - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_SystemSlot - - - PSStatus - - Status - SlotDesignation - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - SlotDesignation - Tag - SupportsHotPlug - Status - Shared - PMESignal - MaxDataWidth - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TapeDrive - - - PSStatus - - Status - Availability - DeviceID - NeedsCleaning - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - Id - Manufacturer - Name - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TemperatureProbe - - - PSStatus - - Status - CurrentReading - DeviceID - Name - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - CurrentReading - Name - Description - MinReadable - MaxReadable - Status - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_TimeZone - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Bias - SettingID - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UninterruptiblePowerSupply - - - PSStatus - - Status - DeviceID - EstimatedChargeRemaining - EstimatedRunTime - Name - StatusInfo - TimeOnBackup - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - DeviceID - EstimatedRunTime - Name - TimeOnBackup - UPSPort - Caption - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_UserAccount - - - PSStatus - - Status - Caption - PasswordExpires - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - AccountType - Caption - Domain - SID - FullName - Name - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VoltageProbe - - - PSStatus - - Status - DeviceID - Name - NominalReading - StatusInfo - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Status - Description - CurrentReading - MaxReadable - MinReadable - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_VolumeQuotaSetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - Element - Setting - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_WMISetting - - - PSStandardMembers - - - DefaultDisplayPropertySet - - BuildVersion - Caption - DatabaseDirectory - EnableEvents - LoggingLevel - SettingID - - - - - - - - - Microsoft.Management.Infrastructure.CimClass - - - CimClassName - - [OutputType([string])] - param() - $this.PSBase.CimSystemProperties.ClassName - - - - - - - Microsoft.Management.Infrastructure.CimCmdlets.CimIndicationEventInstanceEventArgs - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - - System.Management.Automation.Breakpoint - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.Breakpoint - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - - System.Management.Automation.BreakpointUpdatedEventArgs - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - Deserialized.System.Management.Automation.BreakpointUpdatedEventArgs - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - - System.Management.Automation.DebuggerCommand - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.DebuggerCommand - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - - System.Management.Automation.DebuggerCommandResults - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.DebuggerCommandResults - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/typesv3.ps1xml b/newton-cn/bin/v1.0/typesv3.ps1xml deleted file mode 100644 index fcb138b..0000000 --- a/newton-cn/bin/v1.0/typesv3.ps1xml +++ /dev/null @@ -1,343 +0,0 @@ - - - - System.Security.Cryptography.X509Certificates.X509Certificate2 - - - EnhancedKeyUsageList - - ,(new-object Microsoft.Powershell.Commands.EnhancedKeyUsageProperty -argumentlist $this).EnhancedKeyUsageList; - - - - DnsNameList - - ,(new-object Microsoft.Powershell.Commands.DnsNameProperty -argumentlist $this).DnsNameList; - - - - SendAsTrustedIssuer - - [Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::ReadSendAsTrustedIssuerProperty($this) - - - $sendAsTrustedIssuer = $args[0] - [Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::WriteSendAsTrustedIssuerProperty($this,$this.PsPath,$sendAsTrustedIssuer) - - - - - - System.Management.Automation.Remoting.PSSenderInfo - - - ConnectedUser - - $this.UserInfo.Identity.Name - - - - RunAsUser - - if($this.UserInfo.WindowsIdentity -ne $null) - { - $this.UserInfo.WindowsIdentity.Name - } - - - - - - System.Management.Automation.CompletionResult - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.CompletionResult - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.CommandCompletion - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.CommandCompletion - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - Microsoft.PowerShell.Commands.ModuleSpecification - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.JobStateEventArgs - - - PSStandardMembers - - - SerializationDepth - 2 - - - - - - - Deserialized.System.Management.Automation.JobStateEventArgs - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Exception - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - System.Management.Automation.Remoting.PSSessionOption - - - PSStandardMembers - - - SerializationDepth - 1 - - - - - - - Deserialized.System.Management.Automation.Remoting.PSSessionOption - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.Management.Automation.DebuggerStopEventArgs - - - SerializedInvocationInfo - - Microsoft.PowerShell.DeserializingTypeConverter - GetInvocationInfo - - - - PSStandardMembers - - - SerializationDepth - 2 - - - SerializationMethod - SpecificProperties - - - PropertySerializationSet - - Breakpoints - ResumeAction - SerializedInvocationInfo - - - - - - - - Deserialized.System.Management.Automation.DebuggerStopEventArgs - - - PSStandardMembers - - - TargetTypeForDeserialization - Microsoft.PowerShell.DeserializingTypeConverter - - - - - - - System.IO.DirectoryInfo - - - Mode - - Microsoft.PowerShell.Commands.FileSystemProvider - Mode - - - - BaseName - - $this.Name - - - - Target - - Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods - GetTarget - - - - LinkType - - Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods - GetLinkType - - - - PSStandardMembers - - - DefaultDisplayProperty - Name - - - - - - - System.IO.FileInfo - - - Mode - - Microsoft.PowerShell.Commands.FileSystemProvider - Mode - - - - VersionInfo - - [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName) - - - - BaseName - - if ($this.Extension.Length -gt 0){$this.Name.Remove($this.Name.Length - $this.Extension.Length)}else{$this.Name} - - - - Target - - Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods - GetTarget - - - - LinkType - - Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods - GetLinkType - - - - PSStandardMembers - - - DefaultDisplayPropertySet - - LastWriteTime - Length - Name - - - - - - - \ No newline at end of file diff --git a/newton-cn/newton-cn.csproj b/newton-cn/newton-cn.csproj index 61b27e1..5b682bb 100644 --- a/newton-cn/newton-cn.csproj +++ b/newton-cn/newton-cn.csproj @@ -30,7 +30,7 @@ true - x86 + AnyCPU true full false diff --git a/newton-cn/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/newton-cn/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 39e78cad2251296b1ea88a1e884afcaab0a1053b..4397e9d176a54daef1988fa509897b977fb2d883 100644 GIT binary patch delta 18 ZcmbQkKZkz%|a|)%m6so1(yH- diff --git a/newton-cn/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/newton-cn/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 9d3673a40400aa010d56012115d6939ce9b0332a..b427b6c5d58066127498525b2ab1d1002d3ab65c 100644 GIT binary patch delta 18 ZcmZ2$xz2J!3=b^xO05;SGPyhe` diff --git a/newton-cn/obj/Debug/newton-cn.exe b/newton-cn/obj/Debug/newton-cn.exe index 03dcd18f661674a477231ecc80d8d6defe3a311f..0f72d966fa1be4be5fcd4963f8e45d8baed00fa3 100644 GIT binary patch delta 96 zcmZpez}zr_c|r$EvEZ)58+$6*8AB(taV%pL*u0h_f)T{wS`FlE;(9k-;Pabh-U1)i z_;zvhhi18bzO{M7q8?tBkpKFJCOd2}5yvJ*D9Y^V_j066(5 A{r~^~ delta 96 zcmZpez}zr_c|r%vt1UNvZ|tdLXUv?;#<7f1Ve?v!2u2WxYc-IwiR;~TfwYaEbn;tY zdF|WqLTUND8;zScEb8H9ag(@pbh5(+69K+0d~Q+C?EIU8m08yF-JZC)WkZcP0J`)k AJOBUy diff --git a/newton-cn/obj/Debug/newton-cn.pdb b/newton-cn/obj/Debug/newton-cn.pdb index 170a19f4b560ba1c53f7f0d6fa014981ad29126a..308e9111518b5eba1e40aca39fb5828b25a18355 100644 GIT binary patch delta 218 zcmZqJ!``rmeS-&=LhP&}eWzQO?`&8TTbo~g-?LR~2m7{J=}QyRbr)^^qc?M-;|#`4 zJj5!LSYX29q}S8Gd5MqX4&KF#EsGgj&6!%hGqu)k|HQ)ho{?9Eu~~+xxqz|xE>ny8 z_IGTI3apG4)A@NAy%`I(NAobMGeNk9)3@+3DlwL9zs|>avKMUV_9b%|6SO5l{_7uN fWME*(_sM&HYO;mng8Jn1TWqouw#%Ggd?E?}CkR#Q delta 218 zcmZqJ!``rmeS-&=!v5K-Z$&rwKX{h&dim6nN5!u~K3rSSpH_F%kx%d7&$N{r9cM6Z z;vrU{!~zo*%go*ro0s@F?%-X**s_GN)q<(z2UBa^_D?K~?-_Yz8JlI9nhP15?=iJ# zY=6hbsKCl-Ih~(}(VMYwdo&NDIunFzIDHErqY`83_Un9%Cwsw$ZeKEoF+p3xP2$#3 fMg|53zAb!iQP1rBn}U^D*7Mz-xLxK1;}cN;Ky_MY diff --git a/newton-cn/obj/Release/newton-cn.csproj.AssemblyReference.cache b/newton-cn/obj/Release/newton-cn.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..654fe63c3d45a2e8165502122afabf3ee530b55b GIT binary patch literal 1660 zcmb_cJ#W)M7`B-Z3k*z55fdzj6Jt^;K(tQNR;trdS4xJH!Xr6Vhd|Ir;AjBU|GX+vb$i%-wz`<}PH@4KdX+b|4s)m_EyhzBB8*o*p7 zC=qJZ+Bm>XNf^XJzQv;&vXEodYjw<2Uq~ADP(Z0^CIH6!(Y?;ypEpyiTg5@cT)7^w zKT#T30egCMRyq8B8P;70)+3w@fC1O@83qZ%o)m+`ex(^vP?ZPcl_wAJK7=5F_o1?; z6tEtRpcGj-E*n`m^V3f93#o{aE7(x*M1Us(poNO#^Nap8pPePBaQ>?3Fp72}{;r^X z9XOxjDe;EOq-_vQQ2OyfZ;Ul?6$!59ix6qY+pWfK+b_=~XiWYjKf#-8ZrAg-cS`?V z{|%8tJbH|*Zt|v2x7)Mq&d$k)#Wl55p|zg9Q5jFP_ZLI#Ezie)#wwegPkz0fqno literal 0 HcmV?d00001 diff --git a/newton-cn/obj/Release/newton-cn.csproj.FileListAbsolute.txt b/newton-cn/obj/Release/newton-cn.csproj.FileListAbsolute.txt index f9abb88..354cb2e 100644 --- a/newton-cn/obj/Release/newton-cn.csproj.FileListAbsolute.txt +++ b/newton-cn/obj/Release/newton-cn.csproj.FileListAbsolute.txt @@ -34,3 +34,4 @@ z:\바탕 화면\insang\workspace\newton-cn_pos\newton-cn\obj\Release\newton_cn. z:\바탕 화면\insang\workspace\newton-cn_pos\newton-cn\obj\Release\newton_cn.Form4.resources z:\바탕 화면\insang\workspace\newton-cn_pos\newton-cn\obj\Release\newton_cn.Form5.resources z:\바탕 화면\insang\workspace\newton-cn_pos\newton-cn\obj\Release\newton_cn.Form6.resources +z:\바탕 화면\insang\workspace\newton-cn_pos\newton-cn\obj\Release\newton-cn.csproj.AssemblyReference.cache diff --git a/newton-cn/obj/Release/newton-cn.exe b/newton-cn/obj/Release/newton-cn.exe index 6233d1a50aa77a6df2a038df6216f7b0f1e7f1c7..57a25b2c9bd92b42de15c60d55c9dd2de63a830d 100644 GIT binary patch delta 100 zcmZqp!_@GHX+j4}eE8Al8+*2}F@{cdWS_t&u=x_Z2P2pxGufQ80w}P7GofGLdi2e< z{Y%nZ*L!OzCSPvh->fjxfrq7fqu%?;DN9WRv>xn>xojckxo!G-*C=b_mz!5CjgSBU D(77nD delta 100 zcmZqp!_@GHX+j4}cz*5jjXhh~7&9k3vQJ=C*nElIgAvS;nQYEk0TkH4nb0q=|Myzw zX$C$Hb1p@*^KAaEx>;eS0}so>)@ko1rz|xQsGPe&g~>V8WpRXs)^+zKE}K^@jgSBU DuEr;Y diff --git a/newton-cn/obj/Release/newton-cn.pdb b/newton-cn/obj/Release/newton-cn.pdb index a61b6ba30a061d80f137d4b1cdda5cc563504a29..ea904ffdd3825fb8ea8feae5de20132a65693b62 100644 GIT binary patch delta 173 zcmZp8!`ASIZG#7gLhP&}eWzQO?`&8TTbo~g-?LR~2m7{J=}QyRbr)^^qc?M-;|#`4 zTpnD+DHJO)V{y{!>EB%8Gi?E*#bo}s+KdI8t>5-Df;qC2U%V4yEZO|~U1cX&-S&zK o#vW~n>WzBu85tNDv>xn>xojckxo!G-*C=b_m)m8QFg_6k0N6uJZ~y=R delta 173 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

ARf+>RBQ4! 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

f`tuH=gy?p zlBuuPAbOVi`T(K|)Yso4nn-38$>s#U;aU~ zfaS|%XMUqH|jL>W}JLy)~nWS=4GIFz7Uhz>6!s9I;< z-qH+$%!rPyA}9&b&0z#N5jEIM&|E}+XA`sq(Sp?keT>KkYb7PzFNi9xA*fsz-rglD zYlZ0jMMTyQ(Oby`K|;Z`A<4`am=ZXcqyFjg$#zDCpw#)>7}Jwy*^xH{c< z>r<%CZiwblSq7qgv<(@LD2TQbixC~8?b17l0%_ZG7EvK>mu@23MrBpQd3!e6_LvZD zr8*N4)uB2ah=$O%?qx(3c91l@f#@)8mrfvxpk?a$M~t)Q|$5G5TW)~od7?LBBiPsB9o2M_VGxL$r#@UP6>Y zWv?T;L1o7gZKblSh)z;ja4+88Y$|JkXbhFbAgW7cRzwY`>;*(eXgt>;dV$IgBkD@S zeUIqDMg{UKyjX>0U7YX+qqQSHecomV0%Jv{yKxJPc;;8Iz zMAfP6i9WpbAyn1{Q2~{uA!?1mxBbr0o ziD*QTw4KOCG@G^)(-7UFvJym{sLn%(F4OvO5zz|TPCPcIc49Z8O|a%s!hMP8DjnDTg=hgCU)PG_?QM95FgqivM(cYj zq6W0SyAi!i?JY#~9<}!-qN=pso<`J}#`6ZEFKD<*(U_Yw?d=e4rLuTL7pcy%h_Y#$ zH3!kdL=w-}5T(CL&_{^s4khR(L^T!?6coeTn>mP}W{9FU5EO-I0?gG)xGY5PEG1|v zqPgh=twnTxEkW-gYLrRPcZgEf5%dtz{E-ATh~=%{SVGWKh)$*vGz?K4s`D8{qn;+R z<%n|D6SND_DhokhAR0j9`6r?lG@dp4@%G$QXD38^sLm8bH>pk+qUJR13lL4BI=3Sl zLUn$EXam*x8=_yR&Wdroy#p&q%-SNFIfS4A0$NVc7(^L^37U;)JPo%QQ3MV5A)@*; zkA6gyNaItH3qp7bW5p}2O8->V4eO83%eJU$P^f#3qM6{OLyMX8nwf6u~ z;35+1`U80Dos$XbfoL}!M-D|4M$1_tqL-;`8KM9xdl%8Y5~AfCqHvmqJBY5(a5dt2 zdqZfrj)-2SX-G!&K25_oL~Z^>bk0Zgc@9C_5XEmK=oF&VEP{STRF>vZg#_N-`3xd! zgXp(S1ocOBJewdJqTa6&G)rJw3EG5cIrZ5Gh-OotT|u*UX+e}p<1z)&C>obFh}O_DaRAYI>d$WxHKOJEKBD`y{?$w5t@oqlx;vuzv|JBC zG=b`zi0Eyqb19+?yGg8fBKmzCL7yXP^ddpG5#5ILv-jR!rY2zF-0d4eHBV%*AZ=?sQe(_o}0#{HKP6$#UV;Pbqm4`L)043IxY{< zYeBaR>$%B@o&~glTY%_WcnWkQw+_)}K%2N70u!un<~~D|OwlcY3GMY}u39o5GaIzm zn>jP0E6WHrtMd#)#UKy#=TvqA$UpuW`{7O{*O~t1I^}ZXl1im|0I6U*|lC)|G8#e1kiUD4=-< z<5q5a8nG~qdx3k(_!bwK&ZEDLQO0+;!H6~h+R43v=yfj2xQpX5c&6F-lyMK2is+`{ zDdRqFGa@T64{-MpeF9qE`8rSy@OB1&KmSu<*V4GDKYPq4G2uU()9?TO zX9KWh1g*pa;0E}n{)J7KTB`nq<^Q+7H!#z*s6NwZdi&9ovftq)WRUj%?B`5cavtyV z-_P0qof=pV^SQu(y2FV7`A_zDz3+PY%l`flYPW&oKey1lczPE3g?t*ZUi05cI}kwI zfk12r_}}^1^56M-$A9O2%YWzVshZD*<;#FNET3NfcRr>3cTzF~IQAD(%K{+o92W@n zG=vMEW#Hg$Gk}YbK;KFUIc4j7v_+OpcC-%1lX3Oj5`qK|o^6 zE7f9TB*%Ft#3zF4n7DX|qFVo;wCLm^x>6D|jDbejlvIdZLS{@vT0FQxtve+Z{E!(H zmmD3Lng~`XMdfYqN_1>;L@M!J+Q6i=zVUG>{W6mxA_tJrNzutM0FomTqEn-jQ`BB% zgZm1cl$@9z7ZshHnGhG5oS2drlbRWkl$4$+z^J9N z5~CK&ii}#UC^K3FWucKc@y^^R>!^a<6sv2zEz6n!b<>h-9gIGRwA-u>PugIpSI+!o ztKDhIjY7IqkNrLXDKE1VXx00!)?acPULOk(eTtL`;uLBBX{9#JQs# zmQi-AkSi$@Q!_v9(4`=LT8^k`myk7F{yk_GX$ z@{xKR1!>?$AEAZ#Wx^oGmJR+Q4aq=Dp4FXi$s)jBnCh}P+&NBHUZmY>aTMgkkAo$b zvHct^B!!tV9!sWILJAhEi0o`@wtv)QYn~HIgm-eJ#gS#TN7(I2R!27ExOcV?i!?{R z&EbOzwIa#ooLK0K2IW`Di-fk`?##`MbUJcuxdkq35*8?{C()jbfHdfm%Y-0UcKr{a zvOx-MEH%WJUw_Pa4HJ_Zk(n~uYPa)w4OtCsk~1rEw8fEY&6bjo(l0tbJ{md+iK|WY zUH~P9TD-wxL6vye2WQ5@%Rw#n1PctntqxKy)D%)ZGzo(LmF|>OB)YOjLpKU-GYrC2 zSu61bP4b+SNJVJ(*ZrXIw3+BjSSTZArxq~E0kK86w7#~xM*?py3K*mbwcO*3=>?4 zoGL*vHir&Xkq$Lc$OL7cshQpjrkXEkmgkk4C)ewXEofE7mlhje%KZ!^*pSD?FAIJJ z(alG(V5$=$gi&Oumk@C&=@Bp!gEV_wP8jvONKlw_I&*TQo0LJw@k&IDzW zU4aY(AYT-jK5CdBwP`BTlnbLtW~#)DeUdDm(P~{p5y?k~B+|`mhLgfCGiVeDhU6os z8K&SSd5MQnF+ak9L2A0yMe+mlT@qdK$e_g@mSfVBW;WN-(4nsB=*nRM5#fSD{^*W*kH486#P!w4&AjOJfE3 z0GX^vSzVHYgv6n1NTW$2%~G_~D~1;-FagQ4z^ak3cEPr?uo(d=v>RzUr>Bj%&H5O@ zC4*YSd(xuebd?vgvx6vWj-|lv@vZ?w>rN0phZXF;J4rns0Gg6AL`~ z1s)-c#1l%BYM>@|ooX)e0W+=CU@8lsywdp$Ag@zC>B<&>1R#?ip8?f&{0gSDN85+T zG+Mf_O3T9FtCT7AJDAcQjji9IOew##hGH78&(^6SMfQM z=&%<`MwIp4>4Mcsvet_GG!j#`SHv%8#>0LQMR$;ggQ5a>j!{!#<5`m#T^k?IFkEqnD zLx8_Z8^oEPQhFnLLA17Y;`A(Cpc$58`Xos7Q_X^2YBUur1$2qWD zWwf(lK)3HeOtBM6gj_2_0EK*s&}BID`GT9^EO2;qS)j)s8fy7ZPVaG%%!C zX+=v-hd7psPn<_KGfHKlv_W9Mf}g&X%1WujIP=B%Ua1T{MkuI2Qt0+r^THyXE}>6Lk4eGZU+CZ? zJrg6yz>Ex?(VSAAp^)Rge<92|bNMzM_MZn>3lkktFy(WQ(EzJXkKPydcXD9@?_Yov zuw)nZCKVQFgzZkZwI5iw(}{y-a!6mJ5j4t5*g8TOWx5Ju3hed>4;;1|Rp7C@y)pe` zMcG`|EZFET)KLY6KF*QjB+_Kq9n8~;HBS9V8v;vA9ylDKOd2>o(+3s(=wX?OBpt(hqNWoV)5a1#nFy}JY69aP+b|dt|^t=2c3p6MWkEQiufsgLs}X< zX9DM8+R^HY$#;GWGHde7^t%f(^MTzu)dhJ23E8* z@ReLg7)e?-JsCYiq$A`rSVtIRFL006k&&#|5hdnZ9XcXxv|uxlbVE8M>MI=?C`hqp z6~Gx^O()TyDngnARwm)-7df033G+6w0p{qD$6WHe^cy%o-R8E*eiII@L99rFE0I$z zu3Re|!h-g9g3~ot5(pu{!Ir`lTdqSbBARepLJ|s*PqMo5Z1jAzBqPPb1_!pmb#Tbi zGLe3BOLD;`G!xkcSst|@(wSfAvgM9uM3M0+w6xhQ4(3-u6A@V)g_0(wH3jSZELM`j znk}u=TncOz<48eq$`V>oe#?y&LvtpqM@VuQ0O4`as8P9Gf-TGCbUSlAVdVF)l+m!_ znGH@Nhq}nom@qivl?DAjsudPI+?o8SP?%Q=X2^oJFE$e^1zk9bigOJ~k#G=IB@mBm zibr19^ouhcNfUEiQyD}$uBntr$2FA_@wlc^ARavxr!!I(3K^c?Eik!tiMG@t)LF1K47Pm5CSr(3g zq7s=n%|X^lvms_Ktff%lC|w>=Ms`oU=+G0VTN83&FWot|fE?5$gJ&%z z{o_*8MOV{JJuQ}6SM)>$FD4}t^jP^VCwb9A5iPBn5^-`8>2cXL84+3I3Sb5k<8(of zMtUqwmNhzmB)sOIL%#vh8-931b!0+8vZ? ztL{PSzHsK<;Z23lLyItgWt9k>miP16YzWPm^JaB-B^5@!s2~Mcy)~)`FGd0Dd2&j9YFmp$st~im&QgRNQM#AqD0k!JyYDPh&?e7cmLb=r&(mxW#NniNYe=Rz ztSwC)KAS_O7BTnqk4q?ncrmQoAeKUhc8jP~pj$%d3=Gy6Syu^UMM=@33VEz7FffqeHt3_6%M~fU(*D$I>k0daE z{#&d3fR|L~#95xQKwxaOm9oP~!r=P?SVr>m6gX@6F?A8Me9p7Vge=BxOzR}L799p> z^0VMtB$-ZXo<9w)#RY{r3}Gy-eISXP2-ng_l+iQctWdWEI9OJS{<(0L<|F@QDg`gg z>x8(%Ae{|o4QL0Vwa-ULRXSl2iq))6p@N{3HU&#iBP?vNCR9<-A_)qls;0%#iHsH% ztum*@y~hb=J1jvXJ_?3jTog1R>oi+h)}m6Md=O3ZnxzYR<>g34lWX-s77~qzv$f1= zh}8MZpY3LY3!0hiRg>g#6&rAUlhQeI)|U4XiF}aGpCo5PEBq>*C1*)mCKSUMJWbAq zVq0s!&yzon0yd1+RD-mLIJM@*!ZB_BaU*)B+?NgvuRC4AQ{}80(QEQNkQv8w<(k1X zPnNSxp_HixhhkaMViRvLlV44)vS`XHryoJ&HP4R#%JzZ;ArlZkf~sx#8Bl4HwkD5l zxU`{_)`h`dsZ(5vfJ&P*&ZP)1cXeq)Yg#XLaz#JWA+lBphka<-xpS5yR!VWYCH%s& z{B63}v*&Dh?;|%@8x;ut2jbUAOCOFderg31((U~WIvYV{tDroE&T@qVB6Q`L9M6DF z2sa!J@_1l#55B;#A;k&@%jmTaED4wHeTIicSg#5+Hw@V$-*gJXM+|N11p!kqNC*CS zy)bw;Q=DVGbF3A(LP@8|mT9L!!Hh4e} z_qkIiI5Ef5>GQj!&_lVQ-7Xw|vByP`!Y@!@_ZDJ+(`~r0iJa>Og=GJcG%o4U`ebNE zkeTX~^P&f)3#ahNh!6ILSS|cPC{h{elDV1zyYzXm8JY=&O4yM|i;JT1NlRu`$(u== zhd)~a17yY=Tn)#Z0udS=ek*=(mrk?{2{ptUwObc|sic&~W$UtqmW8C7C8fae7AQ_q zWOa%35-4cKGI5_<$OUp}h&+`eSF2=4JI32wP6xR@DpfOtH;=(M8cyB7#Y(c6izcxA z@N4=kh3XWy3xqQOn7b@7JuW#FuHu3dr2eqs_=jISVROhYGE^3_w&AB{A=mtguEGoA zT7sW`@Wz*W!W&b=7vAU^-ta~jOR?k+uXM5Kcx4GrrUeU1et*k&3l@Hy5yd;R$Yn|N zzA?5uiSZGF(wpbt>0)T$=;3s~14idrY<9odeO=B8FwyawpJ2_lS(4zipne!xy@X*a z-_E%8Ovvbvi*echQ9-j<%l!^P9wgwet%GN>{fZHoiL_hbIzU~zD(i5L%lEnd2g{T< z`s%XdwY-#)t}w>OwXel3YcRz|P98I+*AgnJE4XJF~*~kdBd#V#U0FN`vX=ind*(ZwwRzQe8eN+La7Hk;5+-T>Io|C7J@BlxnLNu!$ zVMXV&M4@5x#S_bnG>*U^a(!Bc#i4|ps$p7(sbO4)sdAmVyNE1sxnQhK=3g>L_$q(? zhNFeYUos9${G~Ia5}hEjc0?MK_`?P-!)I~@i&yB zDr1g#EgJrC6l$5A^Qu~hC(BlaY8-d6YUOn7(|qxy(&AGUUsQByYOyM>6ltI1%gpjn$!`0{*!I9gegJ-nS6079cFEmN{%K@g8#~K2n-Ar{Uh1>e)BL7Sf4Yy>j*9 zAT2;MidAGrwPpbQm}t@kuhZ-7Rac)g5rGK@S&&z*DKHGdvKNYckAmK6m~4fKzm?wn zig967%3~*6P-j?zVLdrU9j8ocD;lxV$TBJG_aM%p_~h_rVWW(9wEPs>B(?G*5i3jVTS)TPhk z_2|=N84IOELz5zBwMnw9)uxDU5_3(PC-}(+O_sabn)sND{?;bR@>iQ8#@vT0A?Ds` zs@@Li{5oR{EcC%3f+?lsd5z2ro1>q{1J|%+S>XY3c-s)1*LSllwtc5hcv$$WpI|aZ zkF_xhh1OQLAJ+)Os)r^FhTy_(so2))+L3o7K9sX@kDds3e|Yp#8Rro8|25Kvv5IqK zTPJD~*#t#F_pG6drLfTwwhb7wELGDz{)HjE3ICJ?qg%)>ZQ-BsA+sTP z?VgZD$xaKL6Oa*@dLL!CM_E0vk;*ENReDVZQ{y$|Vx_?^nk1pdc;he?T~mjwmTNMY zDy}IPqlz_AlO#md8%OR{xG2SkSJe!;SJiScs*=alBq6HaIC8J5btt{6X2`v&mWxr9 zJflRxL;R;%Q9>tVfJuW>c=#`DNR;XkSMyav_vNEBju?Gs7pn{km0s0_8 z-^&J-kND(5AxiRJ1#80SKwp~%Lr|$9QVeI+{f0&uy_`sMWW&25#p7s#Rpoq2L1VRP zwyz4lpjO`XC`h8a$Y5HEl7=lJWf%&7D5QdIou8Af;|kzCT=+Iz{{9a}x7eMM6Y#2; zC_Rd-%a+XzRaC{?Rw);vE#<`6Ts;mNQWJ1uC``}Dv;J&s`6x*9F@;>p5EzHaLaIEj zBnYv`XIU7dil7>WmmeduL71kEo*RVqh;$2m(IhS}!P{)bSwXTD?iR9=S1l<>q_M&~ zJO)}l%frQ zxbkL@Xc1?!*lFOLMP@-6iugsC0P6=6(kLy#L63!3d@}K;84DauA@uZFiLu;NaqASm6$kKlC>B1gUf|vUQzm8o2BTJy_1-fMo-Lw8wAO* zdp4a4Z9-Q2MV3bHnskkpnptVXnogoGJPyFbOI{^tL&rv2Ss_#eMYFz(Prb5E@R=#bX6pIsfS@KA1x-?LJ7z22OA`YK+86;td=|w z!fUeNCAO;GI>|W!-u*&e>&ysgNSvqgi|KqvCk5vlMEb^4p%+vLp(?8-m={p?NnsOL z=HlT^!;E>_B(tTFHpfa5??#43e5fFyy(oAYlN~BBzaPO^Qpjab=rJ^*Hxpi&z=)(J z01Y9k*N`a6oCZV4UJa2(W#R8e*5LAo81Wes*k`~-C=PDr7rHQ~gH{PF;Y9gJt^a!pocU2U z_rDo~e^Ud=Ug6~dd^ss~4*Yux__6!HQ2-!(m_hg*& zn5CDw4F55Wi&x|O4v(!BKgp-zycILyskqY6F**LI)wC~rc8kl)%*V&LII<^A&jwpv z>h=^$Z=oX#It6?uJl_YZd8FO-iwFv#MfXde51zWUl-@()O}{#v)XI8|m^vWaxRf#| ztyx0DRLZc#EWP5DRE<)GrFI`TFwMNjGYYw`88D2zc7O}ZqW=l6kf3E1PM^@@`5=b* zt;54$ScFOPxHvcb!^?M>J9X)moN#wGOnI~2f*faQVGt4?WP~zEp9NHj$@T!;A_v!q zqMX088)m`eT}f_rx#!;$Meb;%Cq%R;;Bhh&^U87Nvk%D9Svrm`++GzwMkvOVf2#Fa zv~kxLL&Bl?R>*~?4B6F4vf;`+C{1pAx03hN;;;M}6T$gD6@Xdq8dBg@QGBc*U+Ezw z*dNKpTgYLp0CQPM1HFFn;9gC>Ecm0*Un;rZnM|ns(y7B74QG;IM@#u|Ly`qvRtx(x zC?@v^x>Kwc7kRcV7p~NW*SCzNKMH=))C1o6&nP19Q%C4=Yztvj*)4M=y<^`?o@)FaWw#A#}L7VelnRltQZey*k{%HW(yDC%i18#xI*1l zsl#TrpVgiZuRvA@VAJA&5@$(*H%l~C9g!Sz8=S-r40zFc+8N{Pmv{6 z(r@B&5=4uf(2+S-9aRY9Js@e?#FOPt{y7omu&4ZpuV76b2<&(X#V@^a&U`qgOp3kD z!;$WlUSq;1fOhj7Ujz8>{B!ck_dP|>)L^3ZZyA8-2psuR6mA&sz7wt)&}A#{8DNOa z{-}7303#L_8*%iYK@nC+NcrPC39|4iT{R#nlP{PE=L6_n0}@H;s0`LobTwS(+$w() zfuzVQmtIBSAD5IxdKZBXUFf{=G6IPu9?BIWtjmf~kf?NW zQ>IQu*E}043*ya{bo7bW87Sin#STX$rB*enwR|*xrQ0_YU^oG{}a({TGYIwve zU&AL}`5IpF&KDns_D)kiNT_}UQSm^&Mn(y>T=@{J{~_sPi2l>H??>O!r4T5Zi{V^ypzx*%aSWRCMZ{@ zY_l|3GClG!uyk#L~B7*atLYlknQ zR5>N4nEMK)8rJow8us<5yrbBO1>H5*aHe8+(UO-@z0Oh;%W9HNO7?d&gVfQ^6(lANr5bx!stvY%lgRxZT`>{DUnT$^py({ z@sqBsOuiLMH&y7k0#s^oeEC~`orR8Wg-@s*S(LG(Rlg~c9Yx6onXo;jzV$*fuZp(3 zS&$i*mk9YdL_Ro|1rxhRap3EBP*v;{4)S7^Mpo+PakSwjfM}~UffQDxZeMx%g@(r^ zJN^XYb6(@^pKQ)6qQh(j2rif9jMjL_R~Y$nnlHA-D9Tq5vA9V7@fAcP>wE>#t4Q#g zRR0_*-bx|mtgdS`xZWM35x~1!Gy-^cibeo$)mv(A$*mevlBI*In%8P*5jF1BkZ8hg z3_lIVi#60@_01Y;4yxb}bdg;NHr|3AY1c<~w}x7q?BIh;mE;1=H5=BdimG0!Vd+97 zQLlHhN;gikrEL^ewTjIs*AAf{8Ew9>TLf0g!>FXx*J-X8L5ooIV5XiJg~!7QN90o8CC`{KVKPF7nXx zt*F;eK1{C3>{%mW@>uX$qC=%S!gi7dCgU*~QUCIX}*!~+Awx|UIz2znq6r3hzwjPB#%@<2ntaUWW%C$B}=`>$v#b&@4QE-|Mo@zvie8nv` z5P95pVjmAwU1KBBppT3MPh0t|Oj*k>?@9RXk|nU?9b(OGQC@)~nGuE_x?^ov_Q88| zq(H0zSn`57wy>2Ujt|s<1WWRPm6m!T>2$-}pM;6`<493VCq;*j7ZM8W9vdV9UK?E? zA8QZ_?>%i9IlHYbfsR~TKrO07a(@XY=-8Br&f&+zs_S~Bgt5Bh_w{IV*a9HzS+kZ| zeVTdcXCN{P6t3)%Vj`qVN6KE>BLyPMGg`OyFbt-7XD+E>2(sr}wJA)itxXV{3jCtY z650u`B&KE6)*>4TXj7O5Q=1^h7n>k$mJnaBB)NZKEKM))@#0?%irl{%1Tnsn>oizG ze7%z7{?*W;^sfd*?q3ap7+=YC8Z05c-bievV=E|gm5=0WJ+kaBABirsp5p8#(&MuG zsPRJegnM@+MasG>6AE>deRzfqEXcJk{E7#LK+o63$Yh=^1Ue3q6k{GWTc~ogbMGSQ}?@Cf%J+1 zf02*mPrTR z3->6%!wOJhgnNc0p9ztUv|B9>a@md~5=S%M?jX{m%hs#tF$S4x#iE;vAS6r5O7WH< z$)Z3)TN(^ptP<9X_=|=l1t^vlh?E4eCh&7NHVLYH0kv}f3DKjW`HHXu{FrIpVrS*(a6I;qu=$tx+$HiTQ2r05Dwi1L~xi9zcW z(AayHB&iUdy=Y02(y&@LEh#AcUZ^k-V47d509phM5oSKrI#R^N%@F>IBuT%w+m;v> zpKDBIk*-^kSZGpt-;yptap980qq)jvKV-WqSNR9SU zZM2qvtgdMNo|tcSX#I|ZN_+*I7K4^kEdc}-9*~x~0jCvuVzKON2F3xcbZeC4e`!rn zON!a7B~r8}S`?v1Xvs8ML*><0QY87uPM{@H-4aE{H_+_kHBo$GaPd+v5UBMMN_e1O z`Mf_F#KHcxa7ITsn6GzmUx!ZK4N0EjgskcU%+-aa7#3013hI6kc4x5^-Q{fzcRbBe@#D?Xkc% zGrXiXZk8k^@Y#;*#982%Z1~oVGXbXy zeCxuE;&K3wf^Qu;E7uwRngJQ&vS>&Pgy{gGtTa?7_6|Y>#%TftMAfBa)F@+LvTPSXD9<-s#Ybi68SJv99}N8tRc7z{0S~s zHq>aWQZ=Cxka=Mod@BS0%9R00nR3RU+QFd#gc4jkq-RlT#wh zTp$POFmOBW&;Q9dId^8m3Ek&inBDE82A>)CSa*ju7&)ZZk|PVP4QH)9)VoH_Uv~6< zqpEpp`Li95{x-64Zo8$mubDS*-Cwb|Z2M+kKEKC#tnz~)b3Z%Z`G@%Mm!c!f{(QN| z3(afv+`ZbY`S%RL|?c)wso6ov0L7^wz>0uaG4RWO<5ggnDT<6 z0I@fEgb5vybjyc06=@rq=gxAv?6y&DL(}2L3s~#u*(uCK{=&aJ1zTHtY6 z>}^A#4}#}rps!4IjZYK#kxT#)OB+X@aE-zls!$CWVDCZa=PJRkIWNZqaqjuu!;eDU_1jp)T_Bw(-{NFpjHh;A(0H;JBIwu8NuDoY`bDo5RdqI(F;C zaRUupTz2>2PWSM9nt8)5dD&e$!Tnjo;T{Xfd24|sf4GfYDg|$s9`1$(Mn^6=V=@+o z{KIoBW39s{@aYM2JI2yPL$U*D(z(r+yWj7w+U(r9rWr#{mYun4`j7RujNkWD%&g+O z&Y=@SD_<=sN$&;t^XZ{$8m5J z&jqt7cqq=n(MoN#hGpCBH0YydphM{fZKbMTp;*ChwK;BzTtuo72Q9k#cf#uj{{|Nu zx$e+P3V&J$LV@JcxfCuFKBKv0_!h?{asvU!!DkG7Cx7+_-grpbR*owNpBBhg{{P-o z3dIlpmpsJ(7zO_sK&ypwfgT%Yhn^{pb3pIqq=cq4R4Pa<@T(i-7S01aCm{aM_P{x$ zRf0HqfMtWu=G&HwEL{U7*%i|1-V*htWq$K_KSg^(f(AS+d$02;GEuM=!L zAyyv95W;o=n|!jdX$z?{h_<6ZgPVr60hf()C}{4^Rb;s7z=dn&m~@#Tc471%>9bAH zOPc|kX`EhwJ{p<_NU4X0b3iQYOsv&$4&x#q4*B5cFo?Y!>{w~&B$~2ZnvOh3vjx0D z^1ud~3xONWjYlT$*Dx3h*x@h7ErS#oz4&-v9Av~w?TPW8OJkkn$ zsE(taU&DYML9K=|+THLg+|LI-Bc3C%%!c@K+)LCqiO3|eCb1Jr7D0T@s_p;heKekH z13uz?oXr(L$~{ajLAwRMQkJcjP`ikKGC<~lGmkVfJ+{`W-iGD$IC?nqe=g_2(g z98wnYX!+PmmnE%VTm7QbD&dnNGvAFNT`QL2V6Tdg>My%sn*E_{i%Uv-|EfZv#8t_|jfYD$y zR__Qg>=5zKkmY$FCp;pqGIk(pF|vm85T&9Q%;ilXK>=xjLDh|EDdy^?sssdAFPC9) zle-~3PKUXQsS^3IZ1u9q*6ci|Bir22RG<7(uDbR>+YB=!A`htEOdKzYV}4i{%Pyd2 z3__D4BSJgCK-|>uiHhcMQ)g3$4(1M>I(8ZQM8ys!2AcB!M`BsmRGW`wRaGoaQw>kD zzJlxvm};mD*=;CioN6#|3$v;Z8-FF}UQ)}@_lIx0RLVtVx1Rm-y@SC&hQ0dysNAtl z8pm8+dhy!_?S8%x_rk@*&u>0guqw2SBYA^m<(Q?jf9|^77~3_#bK`>pUrhVF>D5NV z=iTYCcGDY;%7zu+E&TAz_?nf!%;o}(_lHOJoA}wlgs3hLR_z(~$MxTP+0P$8{!X=p z5p7d<*638@=-Zc%H2l};^-rXZtkAW`idDmwMb}?^^8BaoE&5~0s_KJ3&2P0Qb;Xeb zoz|O@f_^&NJ?_ID&jh=ILT5G_6a3w=bBpHoi!eL8PWac@w}S5&p{yF#O*Kpfk4!Q( z0zWor7FgR3AOH=`?=%2>*o*DS^v|S zqkD&%Qi-@~V1jAD`Z!apxt*yE$(Zuhn@SlI=d#-2A)ip3F2XB7LgQ_DHjg#iT+390 z(92Y>*r7vsx31xBI(6=3Hh17-)r7=qN{!cA8N=t+I{`zXGHrnV0C%iK1_H_6^Os88w`&EjWEQP*J&uH z25#$&%Ts@AemS7E$@WwC!DXL2S8i`5WB#%)Z>GAO8RfaNg@^lO)#hG&epAJk<$tL0 zY^Uj6L+6`E)I2wTUUL0k*MAst;o#}G>FKY}?&I1twp+vR!jC@vu<|o4zUVb=e%rqu z7^lp;aC-lx_J`O0`OUG}`>&4|ffy+=b|`0B4uU%b_A z`|Insw0mw;VVOsl`}Yp)9GZXm$WLQ0u6(ac!PPnDZ(q*8@=ezro|q*qhs_+>r0v0P zVmIXeHK@gE*Dqx^9^2ipM@r}CuAIHzV)xAY4|gAH65`w(v*3_p$x{($Pps=b!Z;@3 zx~);OmczR|dJtK&+$$IByz|L-hpSyWJgmiUEhd^?9M(Ey?31%oM%HTk-slD?d#=ab zT4i}@`sfgM)QIOxQrmo6_*czOI*+i|Z!`SVzLia0bUJo4|Ef#%_Y=>x*t)wzkBEhB zzyI*$grEPFI`FUIot97xp6FjW?tfHI~4XbEJk-RFO%pP2V^ z$?#F5&-8p{{;)4jt*Cv(lukl43QROXdshtYo!A&bqor=`Xj7NZ_tmsPg5nE>7s@PY z?@aAXUD|c%NZY%iLi+~o9U0X07cjJUy}Y$|?X!f&PDi&#QCkD1f&**Ze{S5M4TXmt zZ`}y*weP9q%8oX@t5kPC+&ubpzm1&|<}4}G{5NyVd`scEN8Q4r$KHPLO3Pj68_b*Y zb;uWWKa4NeC1=b_*Xw-|IDd2PC)U5Z`%<3{UB(|dH1vamKLoyat=8E$-XDEq)EnQX z+LKI!H~#Y6!&f#9oO}EFb2Ho-hm#w-I}N?HZch3~f#=JH{QCEcmrvcEG&=4P28`cKvc7>*D2}X6yE%D>vUbS!?~8o}1r%^>E+Q^IynJZSZLJwLJ}D=R3E% z2S%*vvnKP(+SYGXUErS6xaIGsF1W)pd%Zq<VXr&krdox9E6`R2YWy_;U@TvDze=+D~e%Rigg_Dq?2znq?BSoN;Bf;o_Dq^q^n2r{Zr49_bocy4m1adRnsN2b(B%h~ zojAI9{fJTLinD@4_ZL)|@O;l((Yx0yU2`I1inHTufuBrRKdSzaN#?0Fcblfx+yO&u zQ_;%*C9R_FV4E5L7f&?=nxJ~)_&X%PTtOTy!Gr*Y)Y9~zytxu|@)E9TYA*#0G(Q;_ zI^@t_fgS(+Zb0sbsacH%?))?FYSk?j4}O2+Tw?Fvy7jx=*z}Ybyj(zib6AD85!R@f zaide)IHRl+Gsbj$W@6s>m~M%le(lHD;ylse@UFlP?pQ~^E`vMf_B0I@LmLeh%uuO| zn@)LBa}`Cldb0M(DWSSm9#_fPN)6-cz^SlqQ}5=*>Q5YLH(^9S_ln|AtG;ya%L*~i z-%spy>{!aVw~yU!6}PO-=9g}FiP*U3Upq&ie75dyA6(q(G9FFIUbxPE^W#@v+_|Uq z`bHD)t{4%Y)a>E1da-jaZl7-X$2GLg^}qhU)T-H(;(=>cZ~a#bi+lXZ3VQ-_iay!C zy2oEXms!&CWZXA@tb6Wi)4iFiZcSMoRik#71@C`4a7p**Ls!iMf?w=6dfudq&m9R_ zT>kwZ$CfL)7E)$p`K9~0Y15DHe6>pVwdaD41vaz1yZ(LWoiFZeO1Zmg$IXw*gju^> zJUQ>5K9@R9GS}KUz3Foe1~ysv(wu4yepGbJu*WZ-%`T3fYc6?l`(e%Hw|EQE0 z`uW&yPRqm6jWX)TUB6!In~ey zeESr1L*1aRpz0TflnXFuOfM~+_YH5gx@2neLzg!v_4+L#-Q6R3<;J!(mK^)!kGDRY z-O3m=;%wLtg*9teht@wF2G?CpongLa4(kHbHB;aeqv3XO(dqR?Crw4i|3^kt%}hYZo0J zVK$?>09IY9EzjBx&N}4fhvIpn;;EIue}R9%Q1UBjQf+8(_;B#nUVFBZ1$@rXfGyBu zQvKZjhyyTX0o5Bw4q#%8b7_7U8E!V4J9aR4GIb0m!$>n^lo{dwSNQ{F+xs+q<#fZn zwUh2FD_8$+(v(&$r%fGKefRr;qgUn^wEJ+}u1dN8^xrbBcdajH^y=|+kB*IIxBU5; z5x0kirY<~V{`}P2kEXmk{BYd{Sy?x3R{gp6kQ=*p&bj(d>zh?tj%~CobLh|OLZ?~I zb$lUia`^eQv9Wi0_22hm^!Y=_D|BtxBuP@*4{NC8_KaUK#kkNc=(5k~jtg#h$ zwCQ$d_?fW3&$YVQ_LC-iwiVyMA`C|Bfv28ehMrG6J+#Ki3m@GKKF}s|Ozn9g51cF+Hn05G`)2GI`QVAoj%H2!?V54?Yj>vu zvj&AOsm>oTg&JCS4i>_o!Rf$naN_KtUtjX%08Y1p8+@_4?Q`bdTJbmp>Y|+VsO-FVZJTm6y z;Mf@*UT6qUPb|nRN`3Q_Mez#{9oabIjHSAx$LfEt)}V!rp?ln++!*#ChZ)Y40{w*+M1ToBURISg3N$L}&J8f1EX_;-wERF6&)1E}-YCb!!_t-~MIe z$9K#JJ}GnQwTJgI^6Hr0K72Ii*qHC`{Pg?8{U2^#-R$z+eZP)P%?NHYXlhioe|D$5 z^zrSH)#i-CnH$ zgS2h!AMU&|x8vSXnJd1|=yUatQ_FMazw~I#sL9_R?O%RD^Go5^>+~O&wd&c%dGD`W zSMt=o$>o-wPElnEt#oAAgrd_sO$T)Q7g6X{nAOD!}PsM{H60fdmSf^Y2eV+_26LzCw zaZ=~=H$qy}|NQMqof`)4Ip5{$vzhZQcxJ^_TRYWw$~4soyJIl3|9kEKf76MQCgmV$ zWrNDJsT5$W8&H#rYO*G3!lk!k9Todlx!?AATf=TG`W6>WGZjr)Kk2{RUoo2sW#EKi z8SeYVqr01)tX)~0|8?!$p+lFU;t$Q6L{xbxfocU%8lHTab&cP2-_IsCxjK|j6eN}vAyxmhP}Jwjgm zr+(~U`)`Ir9ePz>_*2oz&~1}GE?L`k`f<~{+bccwS@w^Yx_`C*<)1TmzqjVSd5?1J zb9SGYG^Eax7xvA*U-G6Q#8pzR-Xnnu2N-s=cLt@1o6dBi~p!Yt4$_Q!D?xy82qh z&W2fwngs3o@vRmsOhxw?1;+N~qHCt2pG-wRn2PoXh8ho4c)#zO3D3j z=dHLQ^Cs`R5peVvTOeUwfGl*C+28uu;#J4WxynXfP{D(iRo`1SepKkrr|K7Cq zt&_XboQ3O*pRdn&>CpD-5i3Kgbne(|qWg6FL0xK2kLqa1+~0ck>b22R4!-$Ljl8Li z29DoUfAOcq@vZwgcGP^ip)7E}iC3E8P^<$2mcik-+ z+wFsGw{lIx+KrFhHG5skoU&=3j30FHs}G7xdM0ix{Ceq~fH&q<$@`_swMQ53EXo<( ve)vB-8tm`2adn%xU)R=pea@r8IrXkI?pVAiV_{B}aRZIcC5=m}y~X`MIHUH~ diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppVClientPowerShell.resources.dll b/newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppVClientPowerShell.resources.dll deleted file mode 100644 index 5096d5ffb564c95741d046a5fa91b389d9dbeef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9216 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 cb^Un#kTigRb{XVx>vG! diff --git a/newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppvClientComConsumer.resources.dll b/newton-cn/bin/v1.0/Modules/AppvClient/ko/Microsoft.AppV.AppvClientComConsumer.resources.dll deleted file mode 100644 index cdcb8ccfebedc91df0f56ba6f089c5f5e541816f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeHP3wTt;*`9-3l$(kaC=Gg|2#638!d*Z@5)kEPLJ;qS>XatlX zxj~aOYJdcT1_&4wtkptycZtZ{}Qg&nCpuKL7LoUHEp- zIWzOkH{X3`PG->!}=A0HRLDPY*#it~mYl%bo_{`GD~f#xsP;} zy7PsY{;ac~3sCo!pMUg}gi1RBp3L=upi-ESp#*%z{v0J> zUS%lRxr%?BTo}ml`8@@z#>vYSf1tqUoi!;Tk^YU7Q;R*pV!txWs}u+Q*`9Io(&AN~ zf}CrV^~-!~6z{B6Q>SK6&Y3(VX?pS`C2`vHOQJg~_67?I6{Gh|B}jbPrH^1~N*eud z2u~L{&>xvd%nE0ens|}2UouH`u;xW z{NX@fKtI4LKn@@ePz1OQ5C8-LH;gGesD9LVa6{|L$8w)peJuQb(UZ@PzV@l|sZGyb zU6Jzgo=2{Gr6BS0SHDHxIo)@RT z)eF!YaEFrnRzlX8x8qw5y%U-__5HCApVUSls{8PzC#HSed*&6N_D@^*>3M+j0oj0D zKt7-lPz1OQ;0Fvowd`-JpTF?$YpQ|HH`%D#PO z(6yU;4t;3dyb(Rq2FkqvO92^xEWmQWb$~6+C*;Ln42vImM2=_8h4B)g2cS2g51{9p zJL9GI9*XY;=mY58?^yh6BirNG&3rTdrbnh<{QS_oOI`rH2&gE}ACatV8mE#V4 z8aMv4^j(R+K2b5{XC1H2h})lf#k8Y+XZFbp&AtwhG&eA3zzwga{9TGq`{JuL^LpKJ z$D&asaf?R-rUk1q*I%5PC4KnEtX((9-Ew2rFY;zj>y!VxSC*}=8Lg~-{JEZMH#Owk zzWRK|Mh#>vcMxOu!-f4F*U$B0Y%uQU4`A$3xT8n=Fg70bE`X7Y1Ed4~8}KaPGr;YD za=1OAi>8C2V4m|7zG#rXoIo$NBdN??G1d7z==Eo9C7I5OWjo7#qUdiDnKq^1K=^h z_W=_D*8paKwhh4b2HHObnvMZqGWuEwPyp`%UIyF^Xa!UQ4uCg10rLRs0Jj3Z!t=rS z9S^t}G<*eIrQq2R;LQV_zr*!((D@Pi8i+A}1fTd@KqKHJ;Cg@`unq7y_}>fdM*+5C zthWJH08RiN2FTz^AHXSGe+Zb4>wXwV27asX8;`zb0L}*d7PxZotORuIM!!42qb~t} z!Z_~(i~v2O(dQh%A3)z?-2Vae{sL_V;#nqecmN**KF8SJ0^9|7fF!F2X#NW`T@ z3flnjxD?D~b09~Tf>idtd%-;R05l+~1&!u&_ktu=4}EcIF`3PTA)p}HHgZCg#16O@ zOk`{(GjjH7=B$|P0}Wkid}f{Cmg+UZh|%!;9|E(McVKj^Yc!DRN5vtW`= zL=w9P7G-N;6eP1jFfo^c$*kE~V33`}M!Q`rxOxVD(a9uoyqbTSQ{pUe6WVwkjGRuW^^O+yN#jJ>Zi;AN}#ie+# zig{2az*ghi%ko(!n)%sU{yls=V}nxArU(zx@tAP<*#tZuVm!W%W#f@oZ@m~rV@1(A zpbDZ$L4`uSI1Be48>T{3ADM~@UXZGwXb~sUi-t?_G>5IhcRos9L&XFdSE`ONh=&W% zEP$#;^Le-`0Fq)}M?;fDYC@wjOg!4{x%DKX*2II031a;9nkaHUiDe1K5;&< zlDz%sCkOaRr1T_cij$rzHqK|F*_6|5=9Fy0ZaRcOVK)GQ&d|=uT#Vid z(IA8dlTN2cvIyc7eFtF|wP<*?XqbjuQb4lX9Ints5S|ZDsRz=l*lZ`M1>sKGfo`@N zx-70N{?kD53Q$}uP%JQjb5Pk}s52guQ7?2E? z?S?zR#-T`8ZzqNTcd(r+T^btetanl=*liCcg{W$>zVo;fV4F}mLC|ZcOIMDh22FHB zaaI-Kh+JY0XPV$hfW3$Y!%2&Xj}*elgIQ7TV-#N)S?u(L=TAbHq?w&FiI9jTMdYWLK{1tM)f$SjGY~in+%a<08<|D5Wdwg*v{pgiY6CRlYCG~1Q5+4 zh^F%tgk%$7H=){Cs#XY^C^PAtJ$Iq{aC>zpoe!XRoU^!dDw~b&i@+WVW}SEcjM2SO z-P!%?D4s&y6T2x&(}3oKQ3a4m0Hdcgr7*(RWw8vT7=IOxkJq3V!K&`4FCa(V$p zau&u_So5R^1|N^*godQmwjN*0wcO2W z%CxOV)oo?!w#Ee6iHIs~YSH#IhbtRot*i!(%hatEPVCyTX7yMoTv@B_FOkE$E48|I z>T26TZCkBY1DsMpN>R~rIlSd)xUyNsBXw`h3^`mG()LuKnXK+_MEBwQYqYJ6;jQhU zp+eiTod_rLHZ>C7$U5Qe+qJqAd=%ANEc&HP*RBjS7)dNlbs<@6eM+Mr8m9y4wOu1^ zZ4K{ekvopIXrV(On-kX=$|k8(oN{4#k$W$D5#}om-RCDs_TL zSe8~_4z1K`PpA(SgC0jT=q}4g?BZDL#^Bzj#WU!7){3!SS+_) z>Y=(EWXpnd6vh^J7bKfq{mV#h2x-*^wT6v4M^1<2xo!eiTPuj8U`9uKt7(yBK!$Qw z+x(t1Nq38|G$C1`zOuGEq&~deCJ|_i=`E#>9>5PTmhLZWxBy_SknCe6 zM2gV^JPbz~L;36`TT@QnR;zC9INU0CJl?K8e7xfbternl%i%iV<99*Obvwzmg)2hn zi0aihaatZK1@Ym^Hm&jm{B3iT`pD`T>Y+w$XjGfq)@0`^ zMmG_qsXnh)$q8b&e7@gTTqLI!=6aN%gNgPiQX!dY&%GFrW3sxP1VE}URK+Q(PM8m_ zMLK$m_0)lduevjXd0KMFhkUh=v_%@ZYhjC!xw->Fs*|-)qt;MqXc_cG_r=|$IHGUp zmZ5)+emb}L21#pe*B)#ojWT)6U5hjLBPe#4Jkw!Rmq!OJCw87%#E3#tON8)EyvTK& zJfNIq%Y9IKh#}hgVx&FhsJUiUwW(Wy#cp;`FfdeLHsYqvVV9Ig$`)#Aag*?dYeHH* z5->h&NZ#-era#eD&h!+BOq*)7M&xUhtkqI~<%SVU`y{Sv4kEz}bi^GJcLiFg9XXY) zZ_>X_;8yd>1Skm@~!d3T*e%fW^nd)9-dE9=v zJ3|7w18%A&f&{`9ouN9Ka~2pbnj8>4P!E)<4adokpe~QqoFrQgYjfeA?pZ@By`y)(Ht|+*v~{BDi3M3pYXV&=-l0h_QwaMpKp@{&5sP zY)QIwS4Ue3rVB_Gw0JYE3sLz2~mw`fyB}>6$m>_bMM0Ud-&uZcr8rx<)4a0l6NLCkeC$ zkBzWtIAuK?*I_0Xa+}pkySgQ0ibigUr*i<7#>SZM^5mkkY~+dVP^GH?CgRYOaOFYu zKr_$2y41H=lW53`ru8;#@F6=|!j(;(7>(%$q_*x6Z?Y85O(#COJ4-EN5ls;zas>hl z5t|y-{bk&fR_nmFi{XqK+$jf4|y20mA_kSZi2%cvF8VLe1R2s1pa8Y)v;+T@Po8;uEq;d+nO z!gtAP17)XTaRwoRn#mpQ?QqV-9<2>?%@gF$g~`Nblq~tlp?AV4_;Yf=QF*z8Y+Bx; zzQwwTX)@HkTPo(!r{Lzgli_D=9z(cdN?mA_rI=SWSA;j0sQ0y^BQdiU*=v{UI*VfU z7R5#47)H^~7rG4RjTJhZBbB8i(uze3xz`QVQV?=D5i=KulBm0CT{QvAZ6bWO%N8as zHb|7T#~y}hr67dGJB)u*8?8z}%k0u3dJpp@IuQ&x9zJt$;E~o?UH!|6maf-54)qz{ zdK~L-o%*nD@I%Ur5T-RO8ab2_;Sh_fAuUt~29R~CJ9cZ8Wu}>_I9p+<}V{!~ZEp3M^1!vutBfBF~X{Utc5A_Jh#C)@!a!p!iMf$(B5q@Q-y0aXP zg6OiwMs`7ts;~%4mX=Yqx+O4-km(<4AF);U}kd|HMA)b%Rj7g;G>z6o~4_ij3)kkU7FjRJ^}4k9~sU* zoXZNK??!i?6Q@bHb7ke9r~Mj7Kk&hDPT}3yTZ-gBb&L8FEWmWi>;sZ9kLQL+*@l=e zgts(kCo!#xm86WmYT2@-GbT(Jjjfg)GQZ2@xAx}he&jc>^&gkpl0HGcnc7+NjV^8U zClSPoj9zW6!Gbh*CMRpcrR7?C19zV8GZ5!+VNh8a3lSlVFhdEbxmFpq5_%dGhBvmU za3qL1Rqfc`({>|`5k3wkOIse=wuT56(>l%x?Ko0oBdfG|y$F29;h8#DPb?#Qsdx2=Uz12ePJ zHY1sEl7=3P894>PsJ*K(vE*rNxSA`7*_5r+A$7-^3yIvC0}}tSAV`aJ{~R%QIKmHK z>@x%_CNmW4xXfbBIUNYN@ttn`+O7vx8lOIapydlak&awdvZAW3Qo}~wEm zc4-K&N9+?&mL+!6%>Y3nfT7aTZ0eFlrawTIq6^Bj21`Nol`u%mWv$fdXem}=J-Hh5 zO;GEI9nqb3!wLPqTO&g{jMo(Y{ez3>w;SVYrDQ`)3`qg4bxgjp$`=hgj&CPp%q+-N z#;;mGo_=N8{Vpw2+bb|<<|+;^N-oV>subJf#$sj+5q8qG(7BEyA->^Zo5@M{nBt|L zh4$NfwzS=>ND;zV)vnmC);|*7fysSk2znnby-zy~#ex3puZMdf;i1<~rU%j!XPJn( zsE^~7l!u$>?GCk~LT$JglWMSqCp;1N=u+Lb9r{UgZNB`WyP^l%uzNzAnIYICUkKwb zve1>A>f^b!!m4e;o-$_0HF}PJI>Zs@FmJ=YE_E8QgDSRiVxZwIc?{N55UiZeSAw>U zQEYwY733HDvuXF!z7lOLL)sR{V|3zRq@7lCFZR3kD818z`0H3Dg=Z2OH>OnJV{MFh zB^LX*yWH5K?mI~Wx8vbyh_TV(Ty-7b{#h z%*;f8HwKQenQxUNV{Jve8Rw+MIR;dw?1tV~!f=I19qS#Yb5$Q~R9g?(Q?{7YI=T?E zCHRajw3lHCRVp#w3^A6a9Q`8V^L-(m0o~!M-5p`#MwzfkqM{OoFQn7L%adiUUz=)Z zO$_hY&@v={ENdq#uv#%DkqlDXjU_>tIahqW2(a# zlZosE0#DRm7qK?cV!zNNOZ(31!sl||p}%^@N2@P~z~S=MY==^DodzZQOL%fmZ6h*X zG9Ip|lmLZm+IezrkLB` zh5~l|PGiRz5{ldt=c(4=lTc5hk}5Q`gR8C?^{o-hfTu$Qxk-ILGh%ar)Wuuu@mOm# z(#`*52lkf_NiY%Ue=6P-uud7cJs#-OID;Sn?*0h<5~SQ!sO3oS3KM64Mm2 zcRWxx!FI*wqpm<^6COEeM-*voEGi$Rc;GICA$XK7z{%mla?#0@G}aZECToNUyPW94?_n)?F=hiIs`_`?W>&f=6QG#PG)747)9+!tT zU@={h=AWtUsJIB#;I0l%tqj}7P10buQt8I7Ic9_!ysdutAYW{YdMkx9GBWX!CFM*Y z$1;(~IE1DO>$mMH$jl0fD)7!c!P?^Q;@Gfg%GVO;j64Th`=C?)|&%! zWb|}aobnwzxFjM^G9o#3$fGe)5mkv(g%urprQuE)I?Aqalo>+fIzZbu!gb50i*_O& z<7jNYFvnl8an>Ay30}ktt&6h@6=`_%^QHa*pT8iuUK&j6It?53SM&AZOGEXiVh5jS z)D7Zti_he^bv158n&U#xNV77yq3^Lp*{GCe){0~dj}52EC95x^Bh2I=JST@nn0@ip z#eLXRu*=X^42`BB>L?yl#=74#yoMg<$bZ6*!PQ1bjr zV0DyaFQnjPykKd({{Ul=)m?}19(Uy6DLFXQ8r6&bcu0m)=v%8qbrQir^~h0}yq$yk zlZh5jDY1xng^%w$={isEPa=KWe6Mtq)duf(fn-YeP1B-y9TlK5v-6Y`zdw6@N)8UY z3#4TSv(dmc3tVAgN1D*(TuL@k!(bN9^%Z+_{}q_CI>mgsBirY)jL6f)6sC>h&xja7 zN=%5Oi}moN7hgb051sdC&p#uiO|M_?FR@Eoe-cNkXLm#PzdVwX^$fLJraI!f0&lMG z_CO53VHUf3jU|1R#`9CZtSY^?akKve@4Wtd%g))gb<&Xam7m3_Q*+0BGVtm*Qa8-p zc;(C0Rny}?e8}7T)16;z8FAjI_7`9N`l6o}zB&Jz=NF|0YAb(uYEHjbr{DZg{|9>P zY0&n3)0lnaZ>5{+%dbEG?m34(_;f(k+HW?``fB-{y2S$4guDe`0Itkj3Q00 ztV~vd>+|S(e%69C{FdXsk?!Yue5>$F9~=^P9!}n35_S3IrO6CO8PTO382$p3?!`x3 z5sf`d7{f7G{Bu6OCERf`dF`2^VCEuUZm~z1&CElnH3K2)2vAz6m6(@!8sTud9Sy54d`k%;}vnWaPQ;=8sRUI<4%_Kj!dL|=^aj7^J|iZl;qy1h>e&NHF@%iJchjk=1J$iCLL!Swk zzOms6-^=HIef|Bvd2{j~7f#=vp4#Ux?_UubHF(yeFMnRO*;oD27xS0?srshe_lEr> z{q4`zjJ zDvIC)iod;-$#a~I|8w`hhyxP0YaIMl;v`CV4jk+f_52(t>s6?{0wwR@I6vd_&RICu z0EgOUvRm<;j=y2g#IYAka4^HI_+5;@$6vy$p6vP2H^M9Qh014NO_oo;Lv=(zPrk(Q zNyD84taL!qJpA=H9r!?JLFD0Y!09uREQl@Rf5uNI8PTys#(51?KB#AF&pDt~;>W?z zX#sRVQ#7VHUWZN{OX4REPQp1u-~mny7=pIqAO|{(z>C8Ii~}bK{~}<_LGM2F?E_Uo z7!K9;>wm>>r)C^RCz*ZI5k~>uwg7eQG|Rv{gAK6Nbsj`Q{n8;?2^^B(F9qERcuJow zIM+_%Try7O$Od05s-tO6zySz!Le+BMG!CV*pCBN{FAg4{zt87Rb#+Ka<%Q;JOTajHWXdZxc{Eh4(Al zum|u|P)O9$842mWNUEe%<^d^=#+4D0%=h$cu6OY zS<-T&gLss|dE`9wzHGwEkCYx`x~OE^J@>yi_Hq(*h7PhiD=KK~auP$crfB68RN K`TW1*!2bXw6%R-N diff --git a/newton-cn/bin/v1.0/Modules/Appx/Appx.format.ps1xml b/newton-cn/bin/v1.0/Modules/Appx/Appx.format.ps1xml deleted file mode 100644 index eb72ce6..0000000 --- a/newton-cn/bin/v1.0/Modules/Appx/Appx.format.ps1xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - TableView - - AppxDeploymentEventLog - - - - - - 25 - - - - 12 - - - - - - - - - - $_.timecreated - - - $_.id - - - $_.message - - - - - - - - - TableView - - Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage - - - - - - - Name - - - Publisher - - - Architecture - - - ResourceId - - - Version - - - PackageFullName - - - InstallLocation - - - IsFramework - - - PackageFamilyName - - - PublisherId - - - PackageUserInformation - - ($_.PackageUserInformation.Count -gt 0) - - - - IsResourcePackage - - - IsBundle - - - IsDevelopmentMode - - - NonRemovable - - - Dependencies - - ($_.Dependencies.Count -gt 0) - - - - IsPartiallyStaged - - - SignatureKind - - - Status - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Appx/Appx.psd1 b/newton-cn/bin/v1.0/Modules/Appx/Appx.psd1 deleted file mode 100644 index dba9f3b..0000000 --- a/newton-cn/bin/v1.0/Modules/Appx/Appx.psd1 +++ /dev/null @@ -1,31 +0,0 @@ -@{ - GUID = "{AEEF2BEF-EBA9-4A1D-A3D2-D0B52DF76DEB}" - AliasesToExport = @( - 'Add-AppPackage', - 'Get-AppPackage', - 'Get-AppPackageManifest', - 'Remove-AppPackage', - 'Get-AppPackageVolume', - 'Add-AppPackageVolume', - 'Remove-AppPackageVolume', - 'Mount-AppPackageVolume', - 'Dismount-AppPackageVolume', - 'Move-AppPackage', - 'Get-AppPackageDefaultVolume', - 'Set-AppPackageDefaultVolume', - 'Get-AppPackageLastError', - 'Get-AppPackageLog' - ) - Author = "Microsoft Corporation" - CmdletsToExport = 'Add-AppxPackage', 'Get-AppxPackage', 'Get-AppxPackageManifest', 'Remove-AppxPackage', 'Get-AppxVolume', 'Add-AppxVolume', 'Remove-AppxVolume', 'Mount-AppxVolume', 'Dismount-AppxVolume', 'Move-AppxPackage', 'Get-AppxDefaultVolume', 'Set-AppxDefaultVolume', 'Invoke-CommandInDesktopPackage' - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - FunctionsToExport = 'Get-AppxLastError', 'Get-AppxLog' - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=849912" - ModuleVersion = "2.0.1.0" - ModuleToProcess = 'Microsoft.Windows.Appx.PackageManager.Commands' - FormatsToProcess = 'Appx.format.ps1xml' - NestedModules = 'Appx.psm1' - CompatiblePSEditions = @('Desktop','Core') - PowerShellVersion="5.1" -} diff --git a/newton-cn/bin/v1.0/Modules/Appx/Appx.psm1 b/newton-cn/bin/v1.0/Modules/Appx/Appx.psm1 deleted file mode 100644 index 871a911..0000000 --- a/newton-cn/bin/v1.0/Modules/Appx/Appx.psm1 +++ /dev/null @@ -1,119 +0,0 @@ -<# -Copyright (C) Microsoft. All rights reserved. -#> - -#requires -version 5.1 - -#.ExternalHelp Microsoft.Windows.Appx.PackageManager.Commands.dll-help.xml -Function Get-AppxLastError() -{ - [CmdletBinding(HelpUri="https://go.microsoft.com/fwlink/?LinkId=246401")] - param() - - Import-LocalizedData -bindingVariable msgTable - - # Search for last Add-AppxPackage related error - foreach ($err in $global:Error) - { - if ($err.FullyQualifiedErrorId -match - "DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand") - { - $command = (Get-History | ? {$_.CommandLine -imatch - "Add-AppxPackage"} |Select-Object -Last 1).CommandLine; - - # Read ActivityId from the Exception record - if ($err.Exception -imatch - "\[ActivityId\] ([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})") - { - Write-Host($msgTable.EventLogsFor + ' "' + $command + '"'); - # Retrieve Event Log messages for ActivityId - Get-WinEvent -LogName Microsoft-Windows-Appx* -Oldest | - Where-Object {$_.Activityid -eq $matches[1]} | - ForEach-Object{ - $null = $_.pstypenames.clear() - $null = $_.pstypenames.add('AppxDeploymentEventLog') - $_ - } - break; - } - } - } -} - -#.ExternalHelp Microsoft.Windows.Appx.PackageManager.Commands.dll-help.xml -Function Get-AppxLog() -{ - [CmdletBinding(DefaultParameterSetName="All", - HelpUri="https://go.microsoft.com/fwlink/?LinkId=246400")] - param([switch][parameter(parametersetname="All")]$All, - [string][parameter(parametersetname="ActivityId")]$ActivityId) - - switch($PsCmdlet.ParameterSetName) - { - "All" - { - if ($All) - { - # Get all deployment events - $logevents = Get-WinEvent -log Microsoft-Windows-AppxDeploy* - - # Select only unique activity IDs of deployment events - $activityids = $logevents |% {$_.activityid} | select -unique - - # Grab all logs associated with Appx Deployment - $logevents = Get-WinEvent -log Microsoft-Windows-Appx* - [array]::Reverse($logevents) - foreach($id in $activityids) - { - $logevents | - Where-Object {$_.activityid -eq $id} | - ForEach-Object{ - $null = $_.pstypenames.clear() - $null = $_.pstypenames.add('AppxDeploymentEventLog') - $_ - } - } - } - else - { - $ActivityId = get-winevent -log Microsoft-Windows-AppxDeploy* -max 1 |% {$_.ActivityId} - Get-WinEvent -log Microsoft-Windows-Appx* -oldest | - Where-Object {$_.activityid -eq $ActivityId} | - ForEach-Object{ - $null = $_.pstypenames.clear() - $null = $_.pstypenames.add('AppxDeploymentEventLog') - $_ - } - - } - } - "ActivityId" { Get-WinEvent -log Microsoft-Windows-Appx* -oldest | - Where-Object {$_.activityid -eq $ActivityId} | - ForEach-Object{ - $null = $_.pstypenames.clear() - $null = $_.pstypenames.add('AppxDeploymentEventLog') - $_ - } - } - - } -} - -Microsoft.PowerShell.Utility\Set-Alias Add-AppPackage Add-AppxPackage -Microsoft.PowerShell.Utility\Set-Alias Get-AppPackage Get-AppxPackage -Microsoft.PowerShell.Utility\Set-Alias Get-AppPackageManifest Get-AppxPackageManifest -Microsoft.PowerShell.Utility\Set-Alias Remove-AppPackage Remove-AppxPackage -Microsoft.PowerShell.Utility\Set-Alias Get-AppPackageVolume Get-AppxVolume -Microsoft.PowerShell.Utility\Set-Alias Add-AppPackageVolume Add-AppxVolume -Microsoft.PowerShell.Utility\Set-Alias Remove-AppPackageVolume Remove-AppxVolume -Microsoft.PowerShell.Utility\Set-Alias Mount-AppPackageVolume Mount-AppxVolume -Microsoft.PowerShell.Utility\Set-Alias Dismount-AppPackageVolume Dismount-AppxVolume -Microsoft.PowerShell.Utility\Set-Alias Move-AppPackage Move-AppxPackage -Microsoft.PowerShell.Utility\Set-Alias Get-AppPacakgeDefaultVolume Get-AppxDefaultVolume -Microsoft.PowerShell.Utility\Set-Alias Set-AppPackageDefaultVolume Set-AppxDefaultVolume -Microsoft.PowerShell.Utility\Set-Alias Get-AppPackageLastError Get-AppxLastError -Microsoft.PowerShell.Utility\Set-Alias Get-AppPackageLog Get-AppxLog - -Microsoft.PowerShell.Core\Export-ModuleMember -Function 'Get-AppxLastError' -Microsoft.PowerShell.Core\Export-ModuleMember -Function 'Get-AppxLog' -Microsoft.PowerShell.Core\Export-ModuleMember -Alias * diff --git a/newton-cn/bin/v1.0/Modules/Appx/ko-KR/Appx.psd1 b/newton-cn/bin/v1.0/Modules/Appx/ko-KR/Appx.psd1 deleted file mode 100644 index cf6bfd9..0000000 --- a/newton-cn/bin/v1.0/Modules/Appx/ko-KR/Appx.psd1 +++ /dev/null @@ -1,4 +0,0 @@ -# Localized 12/07/2019 08:21 AM (GMT) 303:6.40.20520 AppxStrings.psd1 -ConvertFrom-StringData @' - EventLogsFor=Event logs for command: -'@ diff --git a/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psd1 b/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psd1 deleted file mode 100644 index 4612109..0000000 --- a/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psd1 +++ /dev/null @@ -1,13 +0,0 @@ -@{ -RootModule = '.\AssignedAccess.psm1' -ModuleVersion = '1.0.0.0' -GUID = "{9E72217E-9E27-45F7-81FC-048763587E0A}" -Author = 'Microsoft Corporation' -CompanyName = 'Microsoft Corporation' -Copyright = '(c) Microsoft Corporation. All rights reserved.' -HelpInfoURI = "https://go.microsoft.com/fwlink/?linkid=311962" -FunctionsToExport = @("Clear-AssignedAccess", "Get-AssignedAccess", "Set-AssignedAccess") -CmdletsToExport = @() -AliasesToExport = @() -CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psm1 b/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psm1 deleted file mode 100644 index b2c0700..0000000 --- a/newton-cn/bin/v1.0/Modules/AssignedAccess/AssignedAccess.psm1 +++ /dev/null @@ -1,342 +0,0 @@ -<# -Copyright (C) Microsoft. All rights reserved. -#> - -# String table for localizable messages to be returned to the user. -$SCStringTable = Data { - ConvertFrom-StringData @' - AppliedSettings = User and Application set, log on as this user to start Assigned Access - ClearedSettings = Cleared Assigned Access, settings reset to factory defaults - ErrorUserNotFound = User was not found. Enter a valid local account UserName or UserSID - ErrorAppNotFound = Application was not found. Enter either a valid AppName or AUMID - ErrorProvisionedAppNameUsed = The app couldn't be set for assigned access by name at this time, run the cmdlet again using the -AppUserModelId option - DeletingInstance = Deleting {0} - ErrorUserDoesNotExist = The assigned access user does not exist: {0}. Run Clear-AssignedAccess to clear assigned access. - ErrorAppDoesNotExist = The assigned access application does not exist: {0}. Run Clear-AssignedAccess to clear assigned access. - ErrorCurrentUserNotAllowed = The assigned access user cannot be set to the current logged in account. - ErrorConnectedUserNotAllowed = You can only set up assigned access for a local standard user account that does not have a Microsoft account associated with it. - ConfirmSet = Set assigned access application to {0} - ConfirmClear = Clear assigned access - ErrorInsufficientPrivilege = This script must be run with Administrator privileges. -'@ -} - -# C# Interop class/interface to check user connected info -$TypeDefinition = @" -using System; -using System.Runtime.InteropServices; -namespace LockdownWMI -{ - // Declare IEnumUnknown - [ - ComImport, - Guid("00000100-0000-0000-C000-000000000046"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown) - ] - public interface IEnumUnknown - { - } - - // Declare IConnectedUser - [ - ComImport, - Guid("9D5F2149-DE8C-45F2-B313-6587A04F771D"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown) - ] - public interface IConnectedUser - { - } - - // Declare IConnectedUserStore - [ - ComImport, - Guid("9EC044BC-B01D-4C18-8634-59BD3FF5DCC1"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown) - ] - public interface IConnectedUserStore - { - int GetConnectedUserEnum( - uint Options, - ref Guid pProviderGUID, - ref IEnumUnknown ppUserEnum - ); - - int CreateConnectedUser( - string LocalUserName, - string IdentityUserName, - ref Guid ProviderGUID, - bool IsAdmin, - IntPtr AuthBuffer, - uint AuthBufferSize - ); - - int ConnectLocalUser( - string LocalPassword, - ref Guid ProviderGUID, - IntPtr AuthBuffer, - uint AuthBufferSize - ); - - int FindConnectedUserByName( - string IdentityUserName, - string ProviderName, - ref Guid pProviderGUID, - ref IConnectedUser ppConnectedUser - ); - - int FindConnectedUserBySid( - IntPtr Sid, - uint SidLength, - ref IConnectedUser ppConnectedUser - ); - } - - // Declare CConnectedUserStore - [ - ComImport, - Guid("40AFA0B6-3B2F-4654-8C3F-161DE85CF80E") - ] - public class CConnectedUserStore {} - - public class UserCheck - { - public static bool IsConnectedUser(String userSid) - { - IConnectedUser connectedUser = null; - IntPtr intPtrSid = IntPtr.Zero; - IConnectedUserStore userStore = (IConnectedUserStore)new CConnectedUserStore(); - try { - bool success = ConvertStringSidToSid(userSid, ref intPtrSid); - if(success) - { - uint sidLength = GetLengthSid(intPtrSid); - userStore.FindConnectedUserBySid(intPtrSid, sidLength, ref connectedUser); - } - } catch (Exception) - { - connectedUser = null; - } - - Marshal.FreeHGlobal(intPtrSid); - return (connectedUser != null); - } - - [DllImport("Advapi32.dll", EntryPoint="ConvertStringSidToSid", CallingConvention=CallingConvention.Winapi, SetLastError=true)] - private static extern bool ConvertStringSidToSid(string strSID, ref IntPtr sid); - - [DllImport("Advapi32.dll", EntryPoint="GetLengthSid", CallingConvention = CallingConvention.Winapi, SetLastError=true)] - private static extern uint GetLengthSid(IntPtr pSid); - } -} -"@ - -try { Add-Type -TypeDefinition $TypeDefinition } catch {} - -$CommonArgs = @{"namespace"="root\standardcimv2\embedded"} - -Import-LocalizedData -BindingVariable SCStringTable -FileName "AssignedAccessMsg.psd1" - -function IsCurrentUserAdmin -{ - [bool](([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) -} - -# .EXTERNALHELP AssignedAccess-help.xml -function Get-AssignedAccess -{ - [CmdletBinding()] - param() - - if (-Not (IsCurrentUserAdmin)) - { - throw $SCStringTable.ErrorInsufficientPrivilege - } - - # Display the instances in WEDL_AssignedAccess - $instance = Get-CimInstance -ClassName WEDL_AssignedAccess @CommonArgs - if(!$instance) { - return - } - - try { - $objSID = New-Object System.Security.Principal.SecurityIdentifier($instance.UserSID) - $objUser = $objSID.Translate([System.Security.Principal.NTAccount]) - } catch { - Write-Error ($SCStringTable.ErrorUserDoesNotExist -f $instance.UserSID) - return - } - - # Tokenizing the app user model id to obtain the app package family name, at index [0] - # aumid = [appx.packagefamilyname]![appxmanifest.id] - $temp = $instance.AppUserModelId.split("!") - $appPackageFamilyName = $temp[0] - - # determining the app name by comparing the app package family name - $appName = (Get-AppxPackage -User $objUser.Value) | Where-Object -Property 'PackageFamilyName' -eq $appPackageFamilyName | Select-Object -Expand Name -First 1 - if(!$appName) { - $temp = $appPackageFamilyName.split("_") - $appName = $temp[0] - } - - # Outputting the details - [PSCustomObject] @{ - UserSID = $instance.UserSID; - UserName = $objUser.Value; - AppUserModelId = $instance.AppUserModelId; - AppName = $appName; - } -} - -# .EXTERNALHELP AssignedAccess-help.xml -function Set-AssignedAccess -{ - [CmdletBinding(DefaultParameterSetName="UserNameANDAppName", - SupportsShouldProcess=$True)] - param( - [parameter(ParameterSetName='UserNameANDAppName', Mandatory=$true)] - [parameter(ParameterSetName='UserNameANDAppId', Mandatory=$true)] - [String] - $UserName, - - [parameter(ParameterSetName='UserSidANDAppName', Mandatory=$true)] - [parameter(ParameterSetName='UserSidANDAppId', Mandatory=$true)] - [String] - $UserSID, - - [parameter(ParameterSetName='UserNameANDAppId', Mandatory=$true)] - [parameter(ParameterSetName='UserSidANDAppId', Mandatory=$true)] - [alias("AUMID")] - [String] - $AppUserModelId, - - [parameter(ParameterSetName='UserNameANDAppName', Mandatory=$true)] - [parameter(ParameterSetName='UserSidANDAppName', Mandatory=$true)] - [String] - $AppName - ) - - if (-Not (IsCurrentUserAdmin)) - { - throw $SCStringTable.ErrorInsufficientPrivilege - } - - try { - # Resolve the user name to its SID if it is passed - if ($UserName) { - $objUser = New-Object System.Security.Principal.NTAccount($UserName) - $UserSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]).Value - } - - # Validate the SID - # For UserName passed in, convert it into the format Domain\UserName or MachineName\UserName - $objSID = New-Object System.Security.Principal.SecurityIdentifier($UserSID) - $UserName = $objSID.Translate([System.Security.Principal.NTAccount]) - - } catch { - throw $SCStringTable.ErrorUserNotFound - } - - # UserName has been converted to Domain\UserName or MachineName\UserName - # Throw error if UserNamePrefix is not the same as MachineName - # We do not allow configuring AssignedAccss to domain account from Powershell - - $UserNamePrefix = $UserName.Split("\")[0] - $UserNameSuffix = $UserName.Split("\")[1] - if(diff $UserNamePrefix $env:COMPUTERNAME) - { - throw $SCStringTable.ErrorUserNotFound - } - - # Parse output of the command "net localgroup administrators" and try to find $UserName - # if it's not found, it's not admin, we can move on - # otherwise throw an exception because we don't allow admin to be AA account - $NetEXE = $env:SystemDrive + "\windows\system32\net.exe localgroup administrators" - $UserStringFromNetCommand = Invoke-Expression $NetEXE | Where {$_ -eq $UserNameSuffix} - if(!([String]::IsNullOrEmpty($UserStringFromNetCommand))) - { - throw $SCStringTable.ErrorUserNotFound - } - - # If passed in UserSID is the same as current user, do not apply assigned access and return error - $CurrentUserSID = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value - if(!(diff $CurrentUserSID $UserSID)) - { - throw $SCStringTable.ErrorCurrentUserNotAllowed - } - - # If the UserSID represents a user with user connected info (bound with MS account), do not apply assigned access and return error - if([LockdownWMI.UserCheck]::IsConnectedUser($UserSID)) - { - throw $SCStringTable.ErrorConnectedUserNotAllowed - } - - # If the AppName is passed, resolve it to its AppUserModelId - if ($AppName) { - # Selects the first object in case Get-AppxPackage returns multiple packages (if multiple versions of the app exist). - $AppxPkg = ((Get-AppxPackage -User $UserSID -Name $AppName) | Select-Object -First 1) - - if (!$AppxPkg) { - # try to find a provisioned app (DismAppxPackage) based on $AppName - # - if we can find one, throw error and ask user to user -AppUserModelId option - # because for provisioned app, we cannot parse AppName into AUMID in powershell - # - if not, throw regular error - $provisionedApp = Get-AppxProvisionedPackage -online | Where-Object {$_.DisplayName -eq $AppName} - if($provisionedApp) { - throw $SCStringTable.ErrorProvisionedAppNameUsed - } - else { - throw $SCStringTable.ErrorAppNotFound - } - } - - $AppUserModelId = $AppxPkg.PackageFamilyName + "!" + ($AppxPkg | Get-AppxPackageManifest -User $UserSID).Package.Applications.Application.Id - } - - if ($PSCmdlet.ShouldProcess($UserName, ($SCStringTable.ConfirmSet -f $AppUserModelId))) { - - # Check if an instance already exists. We only allow a single instance of WEDL_AssignedAccess. - $instance = Get-CimInstance -ClassName WEDL_AssignedAccess @CommonArgs - if ($instance -and $instance.UserSID -eq $UserSID) { - # Update AppID of existing instance - $instance | Set-CimInstance -Property @{AppUserModelId=$AppUserModelId} -ErrorAction Stop -Confirm:$false - } else { - # If an instance already exists with a different username, - # delete it before creating a new one. - if ($instance) { - Write-Verbose ($SCStringTable.DeletingInstance -f $UserName) - $instance | Remove-CimInstance -Confirm:$false - } - - New-CimInstance -ClassName WEDL_AssignedAccess -Property @{UserSID=$UserSID; AppUserModelId=$AppUserModelId} @CommonArgs -ErrorAction Stop -Confirm:$false | Out-Null - } - Write-Verbose $SCStringTable.AppliedSettings - } -} - -# .EXTERNALHELP AssignedAccess-help.xml -function Clear-AssignedAccess -{ - [CmdletBinding(SupportsShouldProcess=$True)] - param() - - if (-Not (IsCurrentUserAdmin)) - { - throw $SCStringTable.ErrorInsufficientPrivilege - } - - $instance = Get-CimInstance -ClassName WEDL_AssignedAccess @CommonArgs - if ($instance) { - # attempt to translate SID to user name - try { - $objSID = New-Object System.Security.Principal.SecurityIdentifier($instance.UserSID) - $UserName = $objSID.Translate([System.Security.Principal.NTAccount]).Value - } catch { - $UserName = $instance.UserSID - } - - if ($PSCmdlet.ShouldProcess($UserName, $SCStringTable.ConfirmClear)) { - $instance | Remove-CimInstance -Confirm:$false - Write-Verbose $SCStringTable.ClearedSettings - } - } -} diff --git a/newton-cn/bin/v1.0/Modules/AssignedAccess/ko-KR/AssignedAccessMsg.psd1 b/newton-cn/bin/v1.0/Modules/AssignedAccess/ko-KR/AssignedAccessMsg.psd1 deleted file mode 100644 index fd9d3c9d221c554da0134e4abf0b06a72991cfee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 zcmd5;O>fgc5S=SX{D+l#C`dH)gAY+D5>}ETq^4A)95{wJ36>Hka_p9Z`0K!XGv3(i zq{)E`vSK^Cv-9!h&5Zy2J`g9DvXGGsWhROIkg>$_NKWKbUdXY$!Tl7^6L|~C6I|!= z5|@)m`nW%p_jumOGn_et+!^*?OA8Xmxbx&Iy*unjvci?fR8qAP!RiQaTW3;YVY7gD!0&;NiG+-FJvx9GQhtKUZ(J; z3siFaoV=66(x(IXbq%RY`6wM-i{SNA(Ia*PXv}e$hLyDCGh(6@2Tds?h@C${+$l?6 zoXX|$9B(tMO!2h!A$A<(zCn_2#ad$y37(^ujDxyE1h`V+Ok6wAK34hd{)YSeG}2qf zSC84}h^zFQK2Bh9r0<#BPS_luB(OB9@g`9{u~%%mBKtSOIA6|Em1c8jM``Y z3OjS0XD-PBzdk^uU5&c()_Ae$>qC6m?Rn_?7`Tx^o{3>3-g4+`1aJFW{Jd6lZdOH&z8sTjt|ZSH<`7THiThF+a%sPbFqm zKOhdFoqBKal|E8j*^h{9C?Dpq)ri*^^zYFc(>Tw<{`x=1-T~U|T4U`uKJ%9G2#B)R z++jDYs9osR=LB&`aj^?F>&^PJ^#)c(-48#BrfS)Gug{_Hb+~M~E<9FzbWEZE* z3crcs+SFzqb4Dbpl~_1r(K<2F%<;`*Gntcqf|U%NX#gv%ZhP*lBJOYhp0LbToy9Wa ztyFd0u6+~ivlh-*>ud!)r&h*k{N;p5fL5Ztfb6k3VBaq*MJ~~<=@2jTQSs9E>I$a_ gxXqy}#gCGiqG|JVxnXHlV#+VI=C|4*zT_CeUlHQ+NB{r; diff --git a/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.Format.ps1xml b/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.Format.ps1xml deleted file mode 100644 index a92846160d6344b22d7fb69344f7aac20d348c33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5806 zcmds5U31bv6g|(*_#YVGrKK~@_<(du)#}(fOzX!p25222Frira^XfUfY_kd35WtVZ zLr9ywpJ(shdy-#2n>fY~j4(tE-_b{cDZXNi7%%Vy4b*YSdyOkGB0leNHO94Bo#7S( zJjHWL9HWKDc!VZSjrM?Y*O<{>mr~ZEm8j8L6QB63k2}2NuViChPHwueC3}+2YNS@u zwfFQgqNNtv#?Cooi13Y15_%dlyO~*UQ%?CsjNkyNmhUO+?TR*rydp-|XZCH(7tuNI z?%u=)u1zSF+PyHo5=JoPHK2`pL4RolrNI>b5RD%9+xvYxW~F$E=`;< zf-&QmlxBNQEWa?)A@R_jk0`H-5atd6#puiBqqA6dj6WflP=9`}U2Zq5mG`13R^_DK zQ$E^jTfy29RnBs~*{D=E-DX4$|qb1M92c_dR!)t-;ndb#A$UQgS`?jvzw>NRF29sZ?ma%*z&WkR_uBeAhFP#`>FvdsL#gI6No2h=>1nF&o%Pv<*wmvLN{xhBBU!juiNsy51*TWTfDTmAXs z^SQ7_XmY0BLKDfu^$!XpQL<0-5lL)uiNY_{Qc9k4lmnxEXr8ezUN+zbL~3{Hb2L}iy7Ac z!(eqsDd$7}bg#yUvL3TKA^w%sQQyzE|nm)(>X_)p8e_e#!MFaCP`8_97X ArT_o{ diff --git a/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psd1 b/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psd1 deleted file mode 100644 index 5834d346cf70eaae09da1192bbfba15c0e2333f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1770 zcmbW1TTk0S5QXQtQvU$c)PfLccuyRMMmQw0*9BDduebeXH|wOZ zTpF$H_3qB)%$&3S^ZP)4%4>NgCo+|x6p~6J7d)BdGG^~u)}+Bxk-9`uE1!z>I+C6o zOS`nG$%s*tH!@(nld9~ns!5-(U3T|*s;px6^fY1KC-0C|o$nFv0Xr^w6Ff$~gCZ+4 zoPa83Jq6zsd&5b~TFmUb&yK_GV(8gKX5_qZkk!|;O0*eqGICskOtZW0Y=CN$ z)ypGBSU2f+%Djk|+f_n!%E1rbLwfFN`D81cP=n$88>=(hi5RP#;jkRY2KI*_H1ZXj zSgvfWNS6I0dXm%aTl$e=zxhA~kHrtgcKA*$4r4Jd>nW#44%Nf%L_wrouxGFzGZ%bm zeIDayRw?L@VRS@&JdBT_Dss+2}f$Y2Xj(Wuu)TUkZd6d--th?J{N@jZ4rJSi+ssTYdUYD=rpKY~Z(H6HTyHb?lGVDt-O zrPQQ<1#jJ*-%1War)nr*JLLNu dFU$U_x+bH&QlutI3v2Ch4DOEnvUgDL;a|lYD60Sf diff --git a/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psm1 b/newton-cn/bin/v1.0/Modules/BitLocker/BitLocker.psm1 deleted file mode 100644 index 680cfd886794c59d7e1c813fed845050408e5a8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301976 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 diff --git a/newton-cn/bin/v1.0/Modules/BitLocker/ko-KR/BitLocker.psd1 b/newton-cn/bin/v1.0/Modules/BitLocker/ko-KR/BitLocker.psd1 deleted file mode 100644 index 5f96492f75fc57b723f1119636d282e49692685c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6338 zcmeHLO=w)#6+Q(O+~U#@FsLw#7e^sB#jfO^R54Mp6*+NI*%p!P%))^v8Z{D@Wo7)_ zNUZ{f*5H5&HaOr-p$i)vIufd85{;x$m>E3tMj*?w-6tBDg%?_Q;X)TOBw*Tn-#zpE z-u%eOcu_*j;L-EEd(Yqf&Uena|M~ZeVoAH4mLBPr0qK|DNv}lYN75v_xb|ifsUWZkL7h(H7LI|>uh-g>rTrl*-^Hq4OZLuXW{oV0a=m9 zzweiq@s{#lG@lOaZxqY+-73YG;M6Cf}^iS!)bkEcV0_gzcsv+H|$6er4a<|*kZcS1i;su$jGEar*)5Av2I z7DEN~o>u;9k>Ayt--V_q&Q5h5gC?T66IOHs;k`KbK}2E%*d4_0hs^4Td~E*q0u6&$ z6~+4@V=wX7BI`>*46}9Sw0@ehHYCm4!Fcw$|3G{h(dsB#PtZC#W67SmVz%F{g{^}! zY@*93Fr$ABuSei_6u9n2JkG#d;yoho;LS%sVL$%ID7A>?TwghX6YauU=5{_uoK(ht zITy;*!aePxH(|FSY0p|RoIf|OD0}Wp`rDOjUhxnoF-zLq%lV)WCJsey5|hc>S*-T!;z zZDUbx5q2KR)fE_pYtC4PnZA~ianH`6RON!;FGF$LX}pab%B*II&xM)S9E}Ba(|_vw zbfJihkplAE{b#nAZOD7pc`G!Ej3IyNS|QJnQ^JtKtfXw_rH7jfPLOAwHI8o~*36qI zqF)8Y5oy}kQ z7$n-})90OXwCy%h!)`HgKcB#g_S;vp$vfP&n*G!byNzIxI>!cL70Kq!l+lpAR3XcP zetyo+zM8CCuq3_Ew?s6pr4*+h;$&^q(mwnh01H|s>-@9cVXE>eyg7??#0a&WcV0^R zSY};)Rt)|hVOrh%%nl;#`;3Lkn%h<4k~hF6{lJ`7qK15UhTTusts=Ou5jE{4@c9dP zYR2;mc+>tx^BnWViv@A0nGtr=K=$111=nLmORmq}gPg0&%GuiWknux>p;&#Q@VHO& zIGtVI`jS~4mh;2Teq_$-RJ-#Cl71HRv;}2o<#}30pk;pV7?igIo4a3&; zWS09;E}iixulhk-mF2bb;#s67n$hnD^Pia19kfGNZj*c2$)q0z)|t)jU#B14CFTo> z?P9c!$7ZxE^P}nYc!GBpy1m0-c6O(^$zfLo&_gv-b1|}yQ}q=y?!g^GqpdL`(}Jo(sqgo ziTTlO$b^^b6Rg&({p6!#E5qpb?jgJU2!sj}=OlFrGZ(YWUso%Bdrka8g@UYQir z7BqRx>@mJF7v*xd-#u}+asc}s-$vC=KdWyfC}qbjovidctNWQ}?T{ll5X zE2HGceWM*CW&L+L#wYiGmGS$2dFtOeb)w^mfMa-<-|qy+4_s!EHqZA5O#l zc&~Fk*OX7gl~P(vJ!cn1L~(x9y4`8+me5sA)Pu=*&&2+p_drC5UxjPuM(CF2HfLz| z6B6g-arq{B+m{k{uS`;JCQYt=7_;3`to1Up{N|0GoPuAR>)YUcca4a&;Py#pYn|Pf zaWhd@AbSlve_jY>Xt{E_TBpBy^^BQMzcy;c5jlwor}|u4z_^@`^akZ5;&u$DF#y|p zu*1`$y~*3T8}awR?Lj`Qj;KEcf~C!@Z^<{~-(ugE!ofw|ZOK+CVv@sJRH25yCGRZe z2XJ@i-_L>GzkCcOuCL(_~Q85S$lp098*dog1^Z zwmlmEt)}AgT&g2qc^jqC=48nm1;#?>%6);m;NJlMQD9{wds%OFFK<{6164Losjq4; z??N9;v+_|VQ9OzpJ?{*?p5Ci&)st=qY#J(^ONjff6w}MbB}MWU;m%ZUY~v5 zG`w@xAf5No{fN&9GO!sLFoSeCPEM{-Sy$&S&xCbGBye#_-GQI;m?|U}@ diff --git a/newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.Format.ps1xml b/newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.Format.ps1xml deleted file mode 100644 index a5cf4c2..0000000 --- a/newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.Format.ps1xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - Microsoft.BackgroundIntelligentTransfer.Management.BitsJob - - Microsoft.BackgroundIntelligentTransfer.Management.BitsJob - - - - - - - - - - - - - - JobId - - - DisplayName - - - TransferType - - - JobState - - - OwnerAccount - - - - - - - - Microsoft.BackgroundIntelligentTransfer.Management.BitsJob - - Microsoft.BackgroundIntelligentTransfer.Management.BitsJob - - - - - - - JobId - - - DisplayName - - - TransferType - - - JobState - - - OwnerAccount - - - Priority - - - TransferPolicy - - - FilesTransferred - - - FilesTotal - - - BytesTransferred - - - BytesTotal - - - CreationTime - - - ModificationTime - - - MinimumRetryDelay - - - NoProgressTimeout - - - TransientErrorCount - - - ProxyUsage - - - ProxyList - - - ProxyBypassList - - - HttpMethod - - - ACLFlags - - - SecurityFlags - - - Dynamic - - - CustomHeaders - - - MaximumDownloadTime - - - NotifyFlags - - - NotifyCmdLine - - - CertificateStoreLocation - - - CertificateStoreName - - - CertificateHash - - - CertificateSubjectName - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.psd1 b/newton-cn/bin/v1.0/Modules/BitsTransfer/BitsTransfer.psd1 deleted file mode 100644 index 35aa5b69744fe5ba43508cc932987a46e20d6f1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604 zcmb`HUvCmo5XH~4iQl0iK4>CKtAMQuv9y$`u}xE2-&c0qZVD7xXf>uE$SX72Jw zL?y=DEbP5^=FH4FGyDD9uDAAL8ZBD9KZ)084J!ppB)I?)l=|&@uaHI@`5&N9yg1Zgv`|Z$wV@@*O z28F-f^)*z?$!8t&-&gw2NJB72;9ru_*ipU`fBl>ytefhwHWqMl-=$QPa(c^eqNvFK zi2M^c=yCeq@AINQw=liTE9B7zYlMcT zbFMRXCyw96DrXrhdtis#W!y#Yh_1-t;1g)Q0{t~8J-2gN`;^!p;VC1gvE1}}Qm{U_uhrMk zThKGID^s^|a7FJt^1M1e7a8wk)VyKYY?M}X=l|Cxnkj2q4`C)D=P9fE)L{FRjDltd zupZ_$Oi`2jgqo(xwW-nUOM1#Po#B9xF4!%1POv}pNOQE+R>pUqY;E4wvCYxOdhu_z zowcHO;37up@fvs&SQ~&TQ2>|mdOFpp;QXSUYEL5-GUUt?pP5vKUwqyGS?VHL*! diff --git a/newton-cn/bin/v1.0/Modules/BitsTransfer/Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll b/newton-cn/bin/v1.0/Modules/BitsTransfer/Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll deleted file mode 100644 index 4fee62bf4f979f94af3d2817c516566919548ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129024 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 - - - - - - - MSFT_NetBranchCache_View - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheStatus - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheStatus - - - - - - - - ClientConfigurationControl - - - - - CurrentClientMode : - - CurrentClientMode - - - HostedCacheServerList : - - HostedCacheServerList - - - HostedCacheDiscoveryEnabled : - - HostedCacheDiscoveryEnabled - - - - - - - - - - - ContentServerConfigurationControl - - - - - ContentServerIsEnabled : - - ContentServerIsEnabled - - - - - - - - - - - HostedCacheServerConfigurationControl - - - - - HostedCacheServerIsEnabled : - - HostedCacheServerIsEnabled - - - ClientAuthenticationMode : - - ClientAuthenticationMode - - - HostedCacheScpRegistrationEnabled : - - HostedCacheScpRegistrationEnabled - - - - - - - - - - - NetworkConfigurationControl - - - - - ContentRetrievalUrlReservationEnabled : - - ContentRetrievalUrlReservationEnabled - - - HostedCacheHttpUrlReservationEnabled : - - HostedCacheHttpUrlReservationEnabled - - - HostedCacheHttpsUrlReservationEnabled : - - HostedCacheHttpsUrlReservationEnabled - - - ContentRetrievalFirewallRulesEnabled : - - ContentRetrievalFirewallRulesEnabled - - - PeerDiscoveryFirewallRulesEnabled : - - PeerDiscoveryFirewallRulesEnabled - - - HostedCacheServerFirewallRulesEnabled : - - HostedCacheServerFirewallRulesEnabled - - - HostedCacheClientFirewallRulesEnabled : - - HostedCacheClientFirewallRulesEnabled - - - - - - - - - - - CacheControl - - - - - CacheFileDirectoryPath : - - CacheFileDirectoryPath - - - MaxCacheSizeAsPercentageOfDiskVolume : - - MaxCacheSizeAsPercentageOfDiskVolume - - - MaxCacheSizeAsNumberOfBytes : - - MaxCacheSizeAsNumberOfBytes - - - CurrentSizeOnDiskAsNumberOfBytes : - - CurrentSizeOnDiskAsNumberOfBytes - - - - - - - - - - PrimaryCacheControl - - - - - - - - $_ - CacheControl - - - - - - - CurrentActiveCacheSize : - - CurrentActiveCacheSize - - - - - - - - - - - - DataCacheExtensionControl - - - - - - - - $_ - CacheControl - - - - - - - - - - - - - - DataCacheExtensionListControl - - - - - - DataCacheExtensions: - - - - 4 - - - DataCacheExtensions - - DataCacheExtensionControl - - - - - - - - - - - - HashCacheControl - - - - - - - - $_ - PrimaryCacheControl - - - - - - - - - - - - - DataCacheControl - - - - - - - - $_ - PrimaryCacheControl - - - - - - - - - - - - $_.DataCacheExtensions.Length -ne $() - - $_ - DataCacheExtensionListControl - - - - - - - - - - - - - - - - - - BranchCacheIsEnabled : - - BranchCacheIsEnabled - - - BranchCacheServiceStatus : - - BranchCacheServiceStatus - - - BranchCacheServiceStartType : - - BranchCacheServiceStartType - - - - - - - ClientConfiguration: - - - - 4 - - - ClientConfiguration - ClientConfigurationControl - - - - - - - - ContentServerConfiguration: - - - - 4 - - - ContentServerConfiguration - ContentServerConfigurationControl - - - - - - - - HostedCacheServerConfiguration: - - - - 4 - - - HostedCacheServerConfiguration - HostedCacheServerConfigurationControl - - - - - - - - NetworkConfiguration: - - - - 4 - - - NetworkConfiguration - NetworkConfigurationControl - - - - - - - - HashCache: - - - - 4 - - - HashCache - HashCacheControl - - - - - - - - DataCache: - - - - 4 - - - DataCache - DataCacheControl - - - - - - - - - - - - - MSFT_NetBranchCacheSettingData_View - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheClientSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheClientSettingData - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheContentServerSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheContentServerSettingData - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheHostedCacheServerSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheHostedCacheServerSettingData - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheNetworkSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheNetworkSettingData - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheClientSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheClientSettingData - - - - CurrentClientMode - - - HostedCacheServerList - - - HostedCacheDiscoveryEnabled - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheContentServerSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheContentServerSettingData - - - - ContentServerIsEnabled - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheHostedCacheServerSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheHostedCacheServerSettingData - - - - HostedCacheServerIsEnabled - - - ClientAuthenticationMode - - - HostedCacheScpRegistrationEnabled - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheNetworkSettingData - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheNetworkSettingData - - - - ContentRetrievalUrlReservationEnabled - - - HostedCacheHttpUrlReservationEnabled - - - HostedCacheHttpsUrlReservationEnabled - - - ContentRetrievalFirewallRulesEnabled - - - PeerDiscoveryFirewallRulesEnabled - - - HostedCacheServerFirewallRulesEnabled - - - HostedCacheClientFirewallRulesEnabled - - - - - - - - - - - - - MSFT_NetBranchCacheFile_View - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheHashCache - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheHashCache - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheDataCache - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheDataCache - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheDataCacheExtension - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheDataCacheExtension - - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheHashCache - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheHashCache - - - - CacheFileDirectoryPath - - - MaxCacheSizeAsPercentageOfDiskVolume - - - MaxCacheSizeAsNumberOfBytes - - - CurrentSizeOnDiskAsNumberOfBytes - - - CurrentActiveCacheSize - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheDataCache - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheDataCache - - - - CacheFileDirectoryPath - - - MaxCacheSizeAsPercentageOfDiskVolume - - - MaxCacheSizeAsNumberOfBytes - - - CurrentSizeOnDiskAsNumberOfBytes - - - CurrentActiveCacheSize - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheDataCacheExtension - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheDataCacheExtension - - - - CacheFileDirectoryPath - - - MaxCacheSizeAsPercentageOfDiskVolume - - - MaxCacheSizeAsNumberOfBytes - - - CurrentSizeOnDiskAsNumberOfBytes - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.psd1 b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.psd1 deleted file mode 100644 index 0b6cb32..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.psd1 +++ /dev/null @@ -1,22 +0,0 @@ -@{ - PowerShellVersion = '5.1' - - GUID='d57aee1e-6fe7-4bbc-8c57-8675a3a83e0d' - ModuleVersion='1.0.0.0' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390757" - - FormatsToProcess = 'BranchCache.format.ps1xml' - TypesToProcess = 'BranchCache.types.ps1xml' - - NestedModules = @('BranchCacheClientSettingData.cdxml', 'BranchCacheContentServerSettingData.cdxml', 'BranchCacheHostedCacheServerSettingData.cdxml', 'BranchCacheNetworkSettingData.cdxml', 'BranchCacheOrchestrator.cdxml', 'BranchCachePrimaryPublicationCacheFile.cdxml', 'BranchCachePrimaryRepublicationCacheFile.cdxml', 'BranchCacheSecondaryRepublicationCacheFile.cdxml', 'BranchCacheStatus.cdxml') - - FunctionsToExport = @('Add-BCDataCacheExtension', 'Clear-BCCache', 'Disable-BC', 'Disable-BCDowngrading', 'Disable-BCServeOnBattery', 'Enable-BCDistributed', 'Enable-BCDowngrading', 'Enable-BCHostedClient', 'Enable-BCHostedServer', 'Enable-BCLocal', 'Enable-BCServeOnBattery', 'Export-BCCachePackage', 'Export-BCSecretKey', 'Get-BCClientConfiguration', 'Get-BCContentServerConfiguration', 'Get-BCHostedCacheServerConfiguration', 'Get-BCNetworkConfiguration', 'Get-BCHashCache', 'Get-BCDataCache', 'Get-BCDataCacheExtension', 'Get-BCStatus', 'Import-BCCachePackage', 'Import-BCSecretKey', 'Publish-BCFileContent', 'Publish-BCWebContent', 'Remove-BCDataCacheExtension', 'Reset-BC', 'Set-BCAuthentication', 'Set-BCCache', 'Set-BCMinSMBLatency', 'Set-BCSecretKey', 'Set-BCDataCacheEntryMaxAge') - - CmdletsToExport = @() - AliasesToExport = @() - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.types.ps1xml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.types.ps1xml deleted file mode 100644 index 9cf05f8..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCache.types.ps1xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheHostedCacheServerSettingData - - - ClientAuthenticationMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.HostedCacheServerSettingData.ClientAuthenticationMode]($this.PSBase.CimInstanceProperties['ClientAuthenticationMode'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheHostedCacheServerSettingData - - - ClientAuthenticationMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.HostedCacheServerSettingData.ClientAuthenticationMode]($this.PSBase.CimInstanceProperties['ClientAuthenticationMode'].Value) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheClientSettingData - - - CurrentClientMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.CurrentClientMode]($this.PSBase.CimInstanceProperties['CurrentClientMode'].Value) - - - - PreferredContentInformationVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.PreferredContentInformationVersion]($this.PSBase.CimInstanceProperties['PreferredContentInformationVersion'].Value) - - - - HostedCacheVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.HostedCacheVersion]($this.PSBase.CimInstanceProperties['HostedCacheVersion'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheClientSettingData - - - CurrentClientMode - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.CurrentClientMode]($this.PSBase.CimInstanceProperties['CurrentClientMode'].Value) - - - - PreferredContentInformationVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.PreferredContentInformationVersion]($this.PSBase.CimInstanceProperties['PreferredContentInformationVersion'].Value) - - - - HostedCacheVersion - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ClientSettingData.HostedCacheVersion]($this.PSBase.CimInstanceProperties['HostedCacheVersion'].Value) - - - - - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_NetBranchCacheStatus - - - BranchCacheServiceStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.BranchCacheStatus.BranchCacheServiceStatus]($this.PSBase.CimInstanceProperties['BranchCacheServiceStatus'].Value) - - - - BranchCacheServiceStartType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.BranchCacheStatus.BranchCacheServiceStartType]($this.PSBase.CimInstanceProperties['BranchCacheServiceStartType'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_NetBranchCacheStatus - - - BranchCacheServiceStatus - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.BranchCacheStatus.BranchCacheServiceStatus]($this.PSBase.CimInstanceProperties['BranchCacheServiceStatus'].Value) - - - - BranchCacheServiceStartType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.BranchCacheStatus.BranchCacheServiceStartType]($this.PSBase.CimInstanceProperties['BranchCacheServiceStartType'].Value) - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheClientSettingData.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheClientSettingData.cdxml deleted file mode 100644 index 2305fb7..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheClientSettingData.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCClientConfiguration - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheContentServerSettingData.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheContentServerSettingData.cdxml deleted file mode 100644 index de8f650..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheContentServerSettingData.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCContentServerConfiguration - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheHostedCacheServerSettingData.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheHostedCacheServerSettingData.cdxml deleted file mode 100644 index 40c5018..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheHostedCacheServerSettingData.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCHostedCacheServerConfiguration - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheNetworkSettingData.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheNetworkSettingData.cdxml deleted file mode 100644 index fa399e4..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheNetworkSettingData.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCNetworkConfiguration - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheOrchestrator.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheOrchestrator.cdxml deleted file mode 100644 index ea9066e..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheOrchestrator.cdxml +++ /dev/null @@ -1,817 +0,0 @@ - - - - 1.0.0 - BC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryPublicationCacheFile.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryPublicationCacheFile.cdxml deleted file mode 100644 index e1a94bb..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryPublicationCacheFile.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCHashCache - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryRepublicationCacheFile.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryRepublicationCacheFile.cdxml deleted file mode 100644 index d34b6d7..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCachePrimaryRepublicationCacheFile.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCDataCache - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheSecondaryRepublicationCacheFile.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheSecondaryRepublicationCacheFile.cdxml deleted file mode 100644 index 09063be..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheSecondaryRepublicationCacheFile.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCDataCacheExtension - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheStatus.cdxml b/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheStatus.cdxml deleted file mode 100644 index 1fe41ee..0000000 --- a/newton-cn/bin/v1.0/Modules/BranchCache/BranchCacheStatus.cdxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - 1.0.0 - BCStatus - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/CimCmdlets/CimCmdlets.psd1 b/newton-cn/bin/v1.0/Modules/CimCmdlets/CimCmdlets.psd1 deleted file mode 100644 index 0517bbe55ace350e996d0f4d6282f7360a787ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1888 zcmcJQ+iuf96h+T768{k82_)jSv@|VJMN4|2QUfTZyr+p1tlCMi(+fiVAbt{9``9LK zl5(kpEZZ~Ze)jB{`SE?%zS?7ZWJh*p$F^@fR!4GZ=eB7*o)@-eeQPjUwQXb#+d#K& zTa3=F$zR%48(7F_)1D)17PeixC7Pn|*`-bGlZ`F)3~h^um@?0J2k2_na_z*wT_h2s zQQnw@BQL*U|bxhCI zdX}RYU?a4vC6CKF#C*M%!mOE#8~1qosQZ|zOFrFinV-4ZS7M0v z);t$$1sjLXyrhVp-I1H$e&1TA| z8zHxpE_OflbI9o-eaV6QdfK%o_SA2kH*_9@me@ET>KTYee#+?FpQ6d^rLFJ`(FW8p pe=7y#)6KJj|246+E*H#R{TfH?*B$P|ZBFnex8)YKtJ+)t{sh<$Ja_;A diff --git a/newton-cn/bin/v1.0/Modules/ConfigCI/ConfigCI.psd1 b/newton-cn/bin/v1.0/Modules/ConfigCI/ConfigCI.psd1 deleted file mode 100644 index 81b895d..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigCI/ConfigCI.psd1 +++ /dev/null @@ -1,30 +0,0 @@ -@{ -ModuleVersion = '1.0' -GUID = '28c9a37e-c849-4370-b672-e5563447b0e1' -Author="Microsoft Corporation" -CompanyName="Microsoft Corporation" -Copyright="© Microsoft Corporation. All rights reserved." -HelpInfoUri="http://go.microsoft.com/fwlink/?LinkId=626871" -ModuleToProcess="Microsoft.ConfigCI.Commands" -PowerShellVersion="3.0" -CLRVersion="4.0" -CmdletsToExport=@( - "Get-SystemDriver", - "New-CIPolicyRule", - "New-CIPolicy", - "Get-CIPolicy", - "Merge-CIPolicy", - "Remove-CIPolicyRule", - "Edit-CIPolicyRule", - "Set-RuleOption", - "Set-HVCIOptions", - "Set-CIPolicySetting", - "Set-CIPolicyIdInfo", - "Get-CIPolicyIdInfo", - "Get-CIPolicyInfo", - "Add-SignerRule", - "Set-CIPolicyVersion", - "ConvertFrom-CIPolicy") -FunctionsToExport=@() -AliasesToExport=@() -} diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/ConfigDefender.psd1 b/newton-cn/bin/v1.0/Modules/ConfigDefender/ConfigDefender.psd1 deleted file mode 100644 index 9f438da..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/ConfigDefender.psd1 +++ /dev/null @@ -1,244 +0,0 @@ -@{ - GUID = 'C46BE3DC-30A9-452F-A5FD-4BF9CA87A854' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="Copyright (C) Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0' - NestedModules = @( 'MSFT_MpComputerStatus.cdxml', - 'MSFT_MpPreference.cdxml', - 'MSFT_MpThreat.cdxml', - 'MSFT_MpThreatCatalog.cdxml', - 'MSFT_MpThreatDetection.cdxml', - 'MSFT_MpScan.cdxml', - 'MSFT_MpSignature.cdxml', - 'MSFT_MpWDOScan.cdxml', - 'MSFT_MpRollback.cdxml', - 'MSFT_MpBehavioralNetworkBlockingRules.cdxml' - ) - - FunctionsToExport = @( 'Get-MpPreference', - 'Set-MpPreference', - 'Add-MpPreference', - 'Remove-MpPreference', - 'Get-MpComputerStatus', - 'Get-MpThreat', - 'Get-MpThreatCatalog', - 'Get-MpThreatDetection', - 'Start-MpScan', - 'Update-MpSignature', - 'Remove-MpThreat', - 'Start-MpWDOScan', - 'Start-MpRollback', - 'Get-MpBehavioralNetworkBlockingRules', - 'Remove-MpBehavioralNetworkBlockingRules' - ) - HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390762" - PowerShellVersion = '3.0' -} - -# SIG # Begin signature block -# MIImEAYJKoZIhvcNAQcCoIImATCCJf0CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAe8sW09SOrnGAk -# xHQAOKM6Sbd9kzILPBEO6kltXbC3OKCCC2IwggTvMIID16ADAgECAhMzAAALjRfo -# TozQcMmkAAAAAAuNMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBXaW5kb3dzIFBD -# QSAyMDEwMB4XDTI0MDgyMjIxMzIwNVoXDTI1MDcwNDIxMzIwNVowcDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEaMBgGA1UEAxMRTWljcm9zb2Z0 -# IFdpbmRvd3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCh4E7Ri5OA -# yPmb7q3dyQb6toqfRY6QGGKDfulXYcupgGPKZu0dHFK4fKaOn60Z1Y1MoNaFWG3f -# e0mpQmrsAw93uYwwDqpMl6r7m1N5HLUkiOSaKO/meceKjprL7USMgRMiK3EWHnTB -# GKs9yqNzpwqvpwTRMnjJDLC35UD7s2Cfn3Yk9jMpTtSwBAeNc7XnS/Pp0GmsXSrZ -# YOOQ9B3GlUkCGoFlscIiYEK3JvJelhYYQAg33us2McxFJJQ+O/BFRko51u1alFzR -# U5ujbc+cr2SpHzlxkIULe4Fvfcv0HRyyeLNBgqunan9xJWf2rAJSMynVUnkgqWZN -# OzHaiYBd9fjZAgMBAAGjggF3MIIBczAfBgNVHSUEGDAWBgorBgEEAYI3CgMGBggr -# BgEFBQcDAzAdBgNVHQ4EFgQUlKchFWOmTlAgDUTsEik8hXWO4o4wVAYDVR0RBE0w -# S6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGlt -# aXRlZDEWMBQGA1UEBRMNMjMwMDI4KzUwMjc5ODAfBgNVHSMEGDAWgBTRT6mKBwjO -# 9CQYmOUA//PWeR03vDBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNXaW5QQ0FfMjAxMC0wNy0wNi5j -# cmwwVwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpL2NlcnRzL01pY1dpblBDQV8yMDEwLTA3LTA2LmNydDAMBgNV -# HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCaycnh5i2eis6RuXLbNRi3Bj4O -# 4EpM2wWQr1xABTgVNaKVDAi85hpJN/RsyGP0b4w4Mrf0+ALPSJ9Idowj1Mogd+2a -# dDXe55zNrrBo3rjP6ZWMWGA80ftwWhH5m9Aou9TVjiRw7j4MwVREpeihAf1Ih2m8 -# N/DknvQ3ygn0MuvQ549sBPKuB87pIvGzv0y53zjDqenk1DCSqRAZiNm26zr7+fTB -# cT9oOxKTLJXKWEN/ZEQy8nIcY6kGi3GuQxfD9tYfmACSAaVfTnqviXtEqQFHHBal -# s9ZDWp2dTlr3FGtZWeGg2Gb2coCvEyQoKlAHZePOcAHzY7tG65uAv+x1BaXSMIIG -# azCCBFOgAwIBAgIKYQxqGQAAAAAABDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0 -# IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzA2MjA0MDIz -# WhcNMjUwNzA2MjA1MDIzWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgV2luZG93cyBQQ0EgMjAxMDCCASIw -# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMB5uzqx8A+EuK1kKnUWc9C7B/Y+ -# DZ0U5LGfwciUsDh8H9AzVfW6I2b1LihIU8cWg7r1Uax+rOAmfw90/FmV3MnGovdS -# cFosHZSrGb+vlX2vZqFvm2JubUu8LzVs3qRqY1pf+/MNTWHMCn4x62wK0E2XD/1/ -# OEbmisdzaXZVaZZM5NjwNOu6sR/OKX7ET50TFasTG3JYYlZsioGjZHeYRmUpnYMU -# pUwIoIPXIx/zX99vLM/aFtgOcgQo2Gs++BOxfKIXeU9+3DrknXAna7/b/B7HB9jA -# vguTHijgc23SVOkoTL9rXZ//XTMSN5UlYTRqQst8nTq7iFnho0JtOlBbSNECAwEA -# AaOCAeMwggHfMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTRT6mKBwjO9CQY -# mOUA//PWeR03vDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBnQYDVR0g -# BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cu -# bWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUH -# AgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBl -# AG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAC5Bpoa1Bm/wgIX6O8oX6cn65DnC -# lHDDZJTD2FamkI7+5Jr0bfVvjlONWqjzrttGbL5/HVRWGzwdccRRFVR+v+6llUIz -# /Q2QJCTj+dyWyvy4rL/0wjlWuLvtc7MX3X6GUCOLViTKu6YdmocvJ4XnobYKnA0b -# jPMAYkG6SHSHgv1QyfSHKcMDqivfGil56BIkmobt0C7TQIH1B18zBlRdQLX3sWL9 -# TUj3bkFHUhy7G8JXOqiZVpPUxt4mqGB1hrvsYqbwHQRF3z6nhNFbRCNjJTZ3b65b -# 3CLVFCNqQX/QQqbb7yV7BOPSljdiBq/4Gw+Oszmau4n1NQblpFvDjJ43X1PRozf9 -# pE/oGw5rduS4j7DC6v119yxBt5yj4R4F/peSy39ZA22oTo1OgBfU1XL2VuRIn6Mj -# ugagwI7RiE+TIPJwX9hrcqMgSfx3DF3Fx+ECDzhCEA7bAq6aNx1QgCkepKfZxpol -# Vf1Ayq1kEOgx+RJUeRryDtjWqx4z/gLnJm1hSY/xJcKLdJnf+ZMakBzu3ZQzDkJQ -# 239Q+J9iguymghZ8ZrzsmbDBWF2osJphFJHRmS9J5D6Bmdbm78rj/T7u7AmGAwcN -# Gw186/RayZXPhxIKXezFApLNBZlyyn3xKhAYOOQxoyi05kzFUqOcasd9wHEJBA1w -# 3gI/h+5WoezrtUyFMYIaBDCCGgACAQEwgZAweTELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IFdpbmRvd3MgUENB -# IDIwMTACEzMAAAuNF+hOjNBwyaQAAAAAC40wDQYJYIZIAWUDBAIBBQCgga4wGQYJ -# KoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQB -# gjcCARUwLwYJKoZIhvcNAQkEMSIEIOTf7eKrc94hoXGvCN+t/9wmIe3y91DbCELF -# WHjOrssCMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8AcwBvAGYAdKEa -# gBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEBBQAEggEAKwk6 -# 7GG0pU8oDPBJ9s4GNkjBBf4L5m5ilBSxIfbwWLO8tcbQmOZFhM5hJuOxrG9o9nHO -# XsEp/d0qNbkUqWALUP7F2wtHmGWYlDElAQvInYMvmI1nClVsbU9w79/HgEkfmuiq -# +z3IOs0oD7Ljz2wjJwsiblf+sR0CuBNahLrArQnBKhQIeCUOTTyon7c8a5ke8D0N -# vphG0d1MGlbmYhPn/GD99E4Mma0XDhinCTtgeE5sFKd6jud156wK7nEGmYfyigXO -# HGc2DdHhQk5fNbVAB4zZRgWqxs5CG6I1JQdb8pPz0RtO5nm2E/LFnm+3vohhB6VM -# EZSswzcrRyEkEHJ/IqGCF5MwghePBgorBgEEAYI3AwMBMYIXfzCCF3sGCSqGSIb3 -# DQEHAqCCF2wwghdoAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsqhkiG9w0BCRAB -# BKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCCD -# r3BORPngiTkTcYbYvwFdu8anphEKdCYbtnl+gnC5xAIGZ7ejj0+AGBIyMDI1MDMx -# MjA1MDQwMS44MlowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJh -# dGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpBOTM1LTAzRTAtRDk0NzEl -# MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEeowggcgMIIF -# CKADAgECAhMzAAACDLlk4zWc7PSuAAEAAAIMMA0GCSqGSIb3DQEBCwUAMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI1MDEzMDE5NDMwMFoXDTI2MDQy -# MjE5NDMwMFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjpBOTM1LTAzRTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC -# AgoCggIBAMoBViY95G2Br9TqPOrKosPQwCiiXbeBwE3nz5n9eyRjA0mxn477BXJB -# iXx09MrX8ELbECJzWb4m9ySqNVpDfYqZRGwRmi2KtBjg8pVb55fBG3evqzOAu6Jz -# qqgeVtejH+XQcm2BRGTMNdYyQqYZIvvPz9yupy+Ziq/y3+yUAXgn6anNv20wVWaP -# Apc41V1HCD1DdZo9kELta+iLs9Eg3aOCNIGcdjIBlKWy0o2ulhvr4a7qhIWRDMal -# Hrn5A0N2Q/i585/g9s6Dd9vi4Y+MjwQ8qWnAzBqLWRDJf5+ByAKhX0n6jwxhgJlR -# 63eTOGHBHOqHosx4ONpcs/vTVJdeJdzZkfO4MdtL+xm0nfrbtxWkKVcQhS+DbGmv -# Ss+Ui0fC2OjU/AwKldiqdgq9fxonydrBP1bwVS67Jk8bXznb6riORWV4ovvH7t6X -# wRN6Ft2TB2EBfJeKZoTNZ6001KYb8p8cCn1zPCwvW8qvhGCf6kgiRke6iZ1/l7jz -# Ur7EhaEsI92m5XzsSoY4r+NuE6dkSrB28DQCUxot+yYJ6Zma6l6Npi4STTn/pwJT -# GAXjMKeQl5h0wA/71niRWHu3NEWzD+VlKXYPsSEgDoqePpF98faTti1IZK/zoJKH -# N+JdrP3LqxO7xIaoXo5sv9678OSK/JWgJ9RdYuOJImytLrcPQQcdAgMBAAGjggFJ -# MIIBRTAdBgNVHQ4EFgQUdQ5FIf+wH+tD9t4PSXlXFDvToYgwHwYDVR0jBBgwFoAU -# n6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFt -# cCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcw -# AoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3Nv -# ZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIw -# ADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZI -# hvcNAQELBQADggIBANkw+viBWbDB/gYwHll8dKvfi6G6DrLO7gdRP4lYxmrP26Et -# kGhfkI+N0onPABW9ig24uZLT72UDlLviu8qp3+72+nzxUaTpTuAxx5q12qkqVtVF -# 2fZl+sxykjjM5zoG25ivMlXhwSzViZf3m6IDFoQPfjDTYGd+49lcDR52wMFt3iLE -# VTxf/UnQN8hSTVgVg86ubCYjaTXq7pNwo7RilGXBN0Kr287R4QgRHVIuZA0HNf2H -# ZxwK+2B6Q5oGghDdlFqLwOzV/7BwoI/MPioNffE2C8sWIqgDplIb1L/I6sZqJIYh -# 4PLk31VC6pM2OvK4DOO9/lbwBCnfWFXUZtQM6RtR137OQlYpfgWbN543nYQRvKSh -# ZwnlX0zgM8Y3nGkWpfL1o7T51HRRRha6p4uEPJGdV5lxMS7TGCaj6lAdq4VUBKxU -# 5EynxMXx2l6x362qSRDxU28jbSg5+dN8v7tmBQx/uo1XSWXRajmeWvUIm9rVt+TY -# dzkFjUz2x3duUGR7PK8k+fiPRt846sJhPBiw2yOJGX9ZbXw06mLCpyLAWVQ2q1YJ -# EzML2vzhhpQxDzYHLCTjx3i4GiflkDylddLuPAlOMmPlRJ5GX2+NP3w8NnIIU7Z4 -# VI4V0N1/pYGj9ZlQDaEZnSr4nuPXjR9tcJ85QibSPbcdoBXRyQNL+eYL+gXWMIIH -# cTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCB -# iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl -# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp -# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw -# OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ -# Q0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIh -# C3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNx -# WuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFc -# UTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAc -# nVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUo -# veO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyzi -# YrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9 -# fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH -# GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7X -# KHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiE -# R9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/ -# eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3 -# FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAd -# BgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEE -# AYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMI -# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMB -# Af8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1Ud -# HwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By -# b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQRO -# MEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy -# dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4IC -# AQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pk -# bHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gng -# ugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3 -# lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHC -# gRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6 -# MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEU -# BHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvsh -# VGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+ -# fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrp -# NPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHI -# qzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA00wggI1AgEBMIH5 -# oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G -# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUw -# IwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5u -# U2hpZWxkIFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29m -# dCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAO+7yGSEQy3lnwt1 -# 5+WzvPUtVTymoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp -# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw -# b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAw -# DQYJKoZIhvcNAQELBQACBQDrey0sMCIYDzIwMjUwMzExMjE0NDEyWhgPMjAyNTAz -# MTIyMTQ0MTJaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOt7LSwCAQAwBwIBAAIC -# LE0wBwIBAAICFG0wCgIFAOt8fqwCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYB -# BAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOC -# AQEASGokbXBYSTF6Awql1Y3U8KcEsxuoxaXdquci0BGl8KZuRblEvUKwQKjtT4Mv -# Z4CwlM+l6/rjMa5SUALn5muUTIggk3mFMLKTcXhgfGfAYlWHhzS+daoHpYn0k74n -# 4r4N+3fLMmr1/Xpfb/74Bfp8SOqoH0hn4J9mOkN658UKstvPve6mz2fcyHTR67QZ -# xoqcw3ePDixiukQ79ZMKmlHaFO5dykpl1X7tra2TIKBI9dmtf+aQSYouqju20DiJ -# zPElfqzoVYhPC6i/Of5dGzzGZrOvSW+qSptYPxtGq1ttrmhogVLL9E9LpePzlcrd -# PUwdR0t4ePPusIzgbJVRSVhVYzGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVT -# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK -# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l -# LVN0YW1wIFBDQSAyMDEwAhMzAAACDLlk4zWc7PSuAAEAAAIMMA0GCWCGSAFlAwQC -# AQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkE -# MSIEILKFLQe8IsGP/BfoLCKCv0TIzxCW1piRPWAr0mIck+thMIH6BgsqhkiG9w0B -# CRACLzGB6jCB5zCB5DCBvQQg1SjXtwUxk3jowjk18gCD1THlw7nEz2Ket7muK45n -# wi0wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgy5 -# ZOM1nOz0rgABAAACDDAiBCBCWzynFAlFH+ypR6v//k4WzoQqt9F24O8vKQMZaz7K -# qzANBgkqhkiG9w0BAQsFAASCAgCDgwnEGoP6qGPRHXDfpqPwg3ofERdfROHbqR// -# mBx1eJofolFOuEzGZ8unrh4rAcgj19xGl9wFwJ8rrBxmelenZ7XJhZiUbss/lYwR -# 0onOBnp5SmWcd881vnEHXdDa0rQUPrRTUIivZm6PcsZheBSro5QQzBN0RJdKb7dz -# iMmGvHfwySaBQkGJ0qD2Lrl74/F5YyOFjo/sytojlQ8VejNs6Ugv54dJvuohG7EF -# IvZnm65FNn1bS39kljdook5pDUayZUjgkA0RLxRIAVDA+Nfu7BJgI7+P06awi1US -# cDyNeMr4t9xmSsKuOEQEYFNV1puP6vFNCxGEXhTxCvhiaUaAmLsQ71Z4KUKYp9x1 -# n/5tg5vV1d2MV+0IqXwkAGBlPug2P6I3UiMsGuPlvNtVeiYsNTrxRWBUoBRjmXqV -# /11BNMViaiImWlHH0fPEzKtsXwu30wEQHbkidx+g3RioctXFgi2ehBrUoRBP0dkR -# K2Xl5Z2kykvAYrV3Sag4T78ITLeJHjlO21+6a2W60yhzx9V6xiSgm9NdqOOo0wke -# 3qei5AI3N0zw3eEWgo/7C+N/TccD+d8YlZsP/g5pOQ+IjDUSGyFca9a5AEddfwc6 -# ymb01sDm6M1N6t9aCswQ7FxAw6ixI8N1Nfk+orX2yROmwQkk8+V2sGgkAFxNwNVh -# 5+M55w== -# SIG # End signature block diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpBehavioralNetworkBlockingRules.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpBehavioralNetworkBlockingRules.cdxml deleted file mode 100644 index b74ad97..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpBehavioralNetworkBlockingRules.cdxml +++ /dev/null @@ -1,240 +0,0 @@ - - - - 1.0 - MpBehavioralNetworkBlockingRules - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpComputerStatus.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpComputerStatus.cdxml deleted file mode 100644 index 317a26c..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpComputerStatus.cdxml +++ /dev/null @@ -1,223 +0,0 @@ - - - - 1.0 - MpComputerStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpPreference.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpPreference.cdxml deleted file mode 100644 index 0c6f973..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpPreference.cdxml +++ /dev/null @@ -1,2449 +0,0 @@ - - - - 1.0 - MpPreference - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Both - Incoming - Outcoming - - - - - - - - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - NotConfigured - Block - Audit - Off - - - - - - - - - - - - - - - Low - Medium - High - - - - - - - - - - - - - - - NotConfigured - Block - Audit - Off - - - - - - - - - - - - - - - Low - Medium - High - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QuickScan - FullScan - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Disabled - Basic - Advanced - - - - - - - - - - AlwaysPrompt - SendSafeSamples - NeverSend - SendAllSamples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Disabled - Enabled - AuditMode - - - - - - - - - - Default - Moderate - High - HighPlus - ZeroTolerance - - - - - - - - - - - - - - - - - Disabled - Enabled - AuditMode - - - - - - - - - - Disabled - Enabled - AuditMode - BlockDiskModificationOnly - AuditDiskModificationOnly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotConfigured - Beta - Preview - Staged - Broad - Delayed - - - - - - - - - - NotConfigured - Beta - Preview - Staged - Broad - Delayed - - - - - - - - - - NotConfigured - Staged - Broad - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enabled - Disabled - - - - - - - - - - Disabled - ScanRtpExclusions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpRollback.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpRollback.cdxml deleted file mode 100644 index a8487fe..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpRollback.cdxml +++ /dev/null @@ -1,241 +0,0 @@ - - - - 1.0 - MpRollback - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpScan.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpScan.cdxml deleted file mode 100644 index f65a652..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpScan.cdxml +++ /dev/null @@ -1,254 +0,0 @@ - - - - 1.0 - MpScan - - - - - - - - - - - - - - - - - - - - - - - - - FullScan - QuickScan - CustomScan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpSignature.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpSignature.cdxml deleted file mode 100644 index 7303bc6..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpSignature.cdxml +++ /dev/null @@ -1,251 +0,0 @@ - - - - 1.0 - MpSignature - - - - - - - - - - - - - - - - - - - - InternalDefinitionUpdateServer - MicrosoftUpdateServer - MMPC - FileShares - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreat.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreat.cdxml deleted file mode 100644 index 240f308..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreat.cdxml +++ /dev/null @@ -1,239 +0,0 @@ - - - - 1.0 - MpThreat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatCatalog.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatCatalog.cdxml deleted file mode 100644 index 2b070bb..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatCatalog.cdxml +++ /dev/null @@ -1,226 +0,0 @@ - - - - 1.0 - MpThreatCatalog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatDetection.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatDetection.cdxml deleted file mode 100644 index ffc845b..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpThreatDetection.cdxml +++ /dev/null @@ -1,226 +0,0 @@ - - - - 1.0 - MpThreatDetection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpWDOScan.cdxml b/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpWDOScan.cdxml deleted file mode 100644 index b0f6e8c..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefender/MSFT_MpWDOScan.cdxml +++ /dev/null @@ -1,226 +0,0 @@ - - - - 1.0 - MpWDOScan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/ConfigDefenderPerformance.psd1 b/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/ConfigDefenderPerformance.psd1 deleted file mode 100644 index 705fd29..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/ConfigDefenderPerformance.psd1 +++ /dev/null @@ -1,225 +0,0 @@ -@{ - GUID = 'A51E6D9E-BC14-41A7-98A8-888195641250' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="Copyright (C) Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0' - NestedModules = @('MSFT_MpPerformanceRecording.psm1') - - FormatsToProcess = @('MSFT_MpPerformanceReport.Format.ps1xml') - - CompatiblePSEditions = @('Desktop', 'Core') - - FunctionsToExport = @( 'New-MpPerformanceRecording', - 'Get-MpPerformanceReport' - ) - HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390762" - PowerShellVersion = '5.1' -} - -# SIG # Begin signature block -# MIImKgYJKoZIhvcNAQcCoIImGzCCJhcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC5QoGq9EV41ZN5 -# fnwNlxKx8aIBP8W7y/AxkQ4SrJmPcKCCC2IwggTvMIID16ADAgECAhMzAAALjRfo -# TozQcMmkAAAAAAuNMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBXaW5kb3dzIFBD -# QSAyMDEwMB4XDTI0MDgyMjIxMzIwNVoXDTI1MDcwNDIxMzIwNVowcDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEaMBgGA1UEAxMRTWljcm9zb2Z0 -# IFdpbmRvd3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCh4E7Ri5OA -# yPmb7q3dyQb6toqfRY6QGGKDfulXYcupgGPKZu0dHFK4fKaOn60Z1Y1MoNaFWG3f -# e0mpQmrsAw93uYwwDqpMl6r7m1N5HLUkiOSaKO/meceKjprL7USMgRMiK3EWHnTB -# GKs9yqNzpwqvpwTRMnjJDLC35UD7s2Cfn3Yk9jMpTtSwBAeNc7XnS/Pp0GmsXSrZ -# YOOQ9B3GlUkCGoFlscIiYEK3JvJelhYYQAg33us2McxFJJQ+O/BFRko51u1alFzR -# U5ujbc+cr2SpHzlxkIULe4Fvfcv0HRyyeLNBgqunan9xJWf2rAJSMynVUnkgqWZN -# OzHaiYBd9fjZAgMBAAGjggF3MIIBczAfBgNVHSUEGDAWBgorBgEEAYI3CgMGBggr -# BgEFBQcDAzAdBgNVHQ4EFgQUlKchFWOmTlAgDUTsEik8hXWO4o4wVAYDVR0RBE0w -# S6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGlt -# aXRlZDEWMBQGA1UEBRMNMjMwMDI4KzUwMjc5ODAfBgNVHSMEGDAWgBTRT6mKBwjO -# 9CQYmOUA//PWeR03vDBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNXaW5QQ0FfMjAxMC0wNy0wNi5j -# cmwwVwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpL2NlcnRzL01pY1dpblBDQV8yMDEwLTA3LTA2LmNydDAMBgNV -# HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCaycnh5i2eis6RuXLbNRi3Bj4O -# 4EpM2wWQr1xABTgVNaKVDAi85hpJN/RsyGP0b4w4Mrf0+ALPSJ9Idowj1Mogd+2a -# dDXe55zNrrBo3rjP6ZWMWGA80ftwWhH5m9Aou9TVjiRw7j4MwVREpeihAf1Ih2m8 -# N/DknvQ3ygn0MuvQ549sBPKuB87pIvGzv0y53zjDqenk1DCSqRAZiNm26zr7+fTB -# cT9oOxKTLJXKWEN/ZEQy8nIcY6kGi3GuQxfD9tYfmACSAaVfTnqviXtEqQFHHBal -# s9ZDWp2dTlr3FGtZWeGg2Gb2coCvEyQoKlAHZePOcAHzY7tG65uAv+x1BaXSMIIG -# azCCBFOgAwIBAgIKYQxqGQAAAAAABDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0 -# IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzA2MjA0MDIz -# WhcNMjUwNzA2MjA1MDIzWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgV2luZG93cyBQQ0EgMjAxMDCCASIw -# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMB5uzqx8A+EuK1kKnUWc9C7B/Y+ -# DZ0U5LGfwciUsDh8H9AzVfW6I2b1LihIU8cWg7r1Uax+rOAmfw90/FmV3MnGovdS -# cFosHZSrGb+vlX2vZqFvm2JubUu8LzVs3qRqY1pf+/MNTWHMCn4x62wK0E2XD/1/ -# OEbmisdzaXZVaZZM5NjwNOu6sR/OKX7ET50TFasTG3JYYlZsioGjZHeYRmUpnYMU -# pUwIoIPXIx/zX99vLM/aFtgOcgQo2Gs++BOxfKIXeU9+3DrknXAna7/b/B7HB9jA -# vguTHijgc23SVOkoTL9rXZ//XTMSN5UlYTRqQst8nTq7iFnho0JtOlBbSNECAwEA -# AaOCAeMwggHfMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTRT6mKBwjO9CQY -# mOUA//PWeR03vDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC -# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX -# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v -# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI -# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBnQYDVR0g -# BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cu -# bWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUH -# AgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBl -# AG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAC5Bpoa1Bm/wgIX6O8oX6cn65DnC -# lHDDZJTD2FamkI7+5Jr0bfVvjlONWqjzrttGbL5/HVRWGzwdccRRFVR+v+6llUIz -# /Q2QJCTj+dyWyvy4rL/0wjlWuLvtc7MX3X6GUCOLViTKu6YdmocvJ4XnobYKnA0b -# jPMAYkG6SHSHgv1QyfSHKcMDqivfGil56BIkmobt0C7TQIH1B18zBlRdQLX3sWL9 -# TUj3bkFHUhy7G8JXOqiZVpPUxt4mqGB1hrvsYqbwHQRF3z6nhNFbRCNjJTZ3b65b -# 3CLVFCNqQX/QQqbb7yV7BOPSljdiBq/4Gw+Oszmau4n1NQblpFvDjJ43X1PRozf9 -# pE/oGw5rduS4j7DC6v119yxBt5yj4R4F/peSy39ZA22oTo1OgBfU1XL2VuRIn6Mj -# ugagwI7RiE+TIPJwX9hrcqMgSfx3DF3Fx+ECDzhCEA7bAq6aNx1QgCkepKfZxpol -# Vf1Ayq1kEOgx+RJUeRryDtjWqx4z/gLnJm1hSY/xJcKLdJnf+ZMakBzu3ZQzDkJQ -# 239Q+J9iguymghZ8ZrzsmbDBWF2osJphFJHRmS9J5D6Bmdbm78rj/T7u7AmGAwcN -# Gw186/RayZXPhxIKXezFApLNBZlyyn3xKhAYOOQxoyi05kzFUqOcasd9wHEJBA1w -# 3gI/h+5WoezrtUyFMYIaHjCCGhoCAQEwgZAweTELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IFdpbmRvd3MgUENB -# IDIwMTACEzMAAAuNF+hOjNBwyaQAAAAAC40wDQYJYIZIAWUDBAIBBQCgga4wGQYJ -# KoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQB -# gjcCARUwLwYJKoZIhvcNAQkEMSIEICjaAYW6dpF96OECCa1j0HmEWEEdofGluuKS -# KwAnvISeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8AcwBvAGYAdKEa -# gBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEBBQAEggEAPSUw -# uXOOzvVNkifKjBTVinJW7rdqj9J8oWF2ph6LhBx8Cf+GVhy4iiqjkOCR5HJGuXdu -# 2x8GRA+TDZuyc8GdSFc1Z0wuz1njQiqXXFLmCOjaGVpjVc10jSc1lA3BsNEehNax -# lPtIPW5J93z8t7TXEOSh7AZGQ3SmS12xKiusP6jfnDjNhzHgI0I+SgkX4QadjBIt -# QjGRkxrdE9dTJHiqmZKX351c287OQbQFvSCheF5VR5Ab9Tbm8Sw1feM5tRPP/gt0 -# vwW1PfdHPstKcufJEKfxjboBXOAzfKCaRqrj2kzRQfbMj5NjI22Y9YicSXzbJQu9 -# ygJfG1iulp12uxZl7qGCF60wghepBgorBgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3 -# DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsqhkiG9w0BCRAB -# BKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCDf -# p3n06ofTmz0YuKVhv/9rijFkkr8AB1PliqZjzdfZVwIGZ7YxybG5GBMyMDI1MDMx -# MjA1MDM1OS42ODRaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVy -# YXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNjA1LTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC -# EfswggcoMIIFEKADAgECAhMzAAAB91ggdQTK+8L0AAEAAAH3MA0GCSqGSIb3DQEB -# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEw -# NloXDTI1MTAyMjE4MzEwNlowgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMg -# TGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjM2MDUtMDVFMC1EOTQ3 -# MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkq -# hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0OdHTBNom6/uXKaEKP9rPITkT6QxF11t -# jzB0Nk1byDpPrFTHha3hxwSdTcr8Y0a3k6EQlwqy6ROz42e0R5eDW+dCoQapipDI -# FUOYp3oNuqwX/xepATEkY17MyXFx6rQW2NcWUJW3Qo2AuJ0HOtblSpItQZPGmHnG -# qkt/DB45Fwxk6VoSvxNcQKhKETkuzrt8U6DRccQm1FdhmPKgDzgcfDPM5o+Gnzbi -# Mu6y069A4EHmLMmkecSkVvBmcZ8VnzFHTDkGLdpnDV5FXjVObAgbSM0cnqYSGfRp -# 7VGHBRqyoscvR4bcQ+CV9pDjbJ6S5rZn1uA8hRhj09Hs33HRevt4oWAVYGItgEsG -# +BrCYbpgWMDEIVnAgPZEiPAaI8wBGemE4feEkuz7TAwgkRBcUzLgQ4uvPqRD1A+J -# kt26+pDqWYSn0MA8j0zacQk9q/AvciPXD9It2ez+mqEzgFRRsJGLtcf9HksvK8Js -# d6I5zFShlqi5bpzf1Y4NOiNOh5QwW1pIvA5irlal7qFhkAeeeZqmop8+uNxZXxFC -# QG3R3s5pXW89FiCh9rmXrVqOCwgcXFIJQAQkllKsI+UJqGq9rmRABJz5lHKTFYmF -# wcM52KWWjNx3z6odwz2h+sxaxewToe9GqtDx3/aU+yqNRcB8w0tSXUf+ylN4uk5x -# HEpLpx+ZNNsCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBTfRqQzP3m9PZWuLf1p8/me -# FfkmmDAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBW -# MFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNy -# b3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUH -# AQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp -# b3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEp -# LmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1Ud -# DwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAN0ajafILeL6SQIMIMAXM1Qd6 -# xaoci2mOrpR8vKWyyTsL3b83A7XGLiAbQxTrqnXvVWWeNst5YQD8saO+UTgOLJdT -# dfUADhLXoK+RlwjfndimIJT9MH9tUYXLzJXKhZM09ouPwNsrn8YOLIpdAi5TPyN8 -# Cl11OGZSlP9r8JnvomW00AoJ4Pl9rlg0G5lcQknAXqHa9nQdWp1ZxXqNd+0JsKml -# R8tcANX33ClM9NnaClJExLQHiKeHUUWtqyLMl65TW6wRM7XlF7Y+PTnC8duNWn4u -# Lng+ON/Z39GO6qBj7IEZxoq4o3avEh9ba43UU6TgzVZaBm8VaA0wSwUe/pqpTOYF -# WN62XL3gl/JC2pzfIPxP66XfRLIxafjBVXm8KVDn2cML9IvRK02s941Y5+RR4gSA -# OhLiQQ6A03VNRup+spMa0k+XTPAi+2aMH5xa1Zjb/K8u9f9M05U0/bUMJXJDP++y -# sWpJbVRDiHG7szaca+r3HiUPjQJyQl2NiOcYTGV/DcLrLCBK2zG503FGb04N5Kf1 -# 0XgAwFaXlod5B9eKh95PnXKx2LNBgLwG85anlhhGxxBQ5mFsJGkBn0PZPtAzZyfr -# 96qxzpp2pH9DJJcjKCDrMmZziXazpa5VVN36CO1kDU4ABkSYTXOM8RmJXuQm7mUF -# 3bWmj+hjAJb4pz6hT5UwggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAV -# MA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu -# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv -# cmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo -# b3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv -# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -# MIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK -# 4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLem -# jkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+ -# NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+y -# OSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTes -# y+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9z -# fUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUD -# o9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDq -# hFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8w -# dJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N -# +VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOC -# Ad0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5k -# xJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBc -# BgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYD -# VR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD -# VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxi -# aNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3Nv -# ZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMu -# Y3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQw -# DQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+Tkdk -# eLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYe -# eNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3Uk -# V7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wX -# sFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mj -# dAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY -# 3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmR -# aw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyh -# YWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+ -# 57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7t -# fqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOh -# cGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVy -# YXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNjA1LTA1 -# RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIj -# CgEBMAcGBSsOAwIaAxUAb28KDG/xXbNBjmM7/nqw3bgrEOaggYMwgYCkfjB8MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy -# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOt7DJww -# IhgPMjAyNTAzMTExOTI1MTZaGA8yMDI1MDMxMjE5MjUxNlowdDA6BgorBgEEAYRZ -# CgQBMSwwKjAKAgUA63sMnAIBADAHAgEAAgINezAHAgEAAgIUbTAKAgUA63xeHAIB -# ADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQow -# CAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQByHXKsA3jwBMLStTX9YrUEKeUc -# iKhqb5t2dMmL//ddLgYa4aTMcR336U5cuVv0ei3pMKb+u0i9Khzn+yhGvQmXuS49 -# rvT/96xV3NPh4UtTFiOq32mbWdnPu2Dk/BMopiX3x4H4h4wbPwCyZuw/3I3fYziX -# C82nzfon4kWQGVLsFKPR76FvwKJfCdnORNcsjGHVC0I2dYldnOkXEOagD+HYuxxP -# TheSSsOjyr00FWJrq/+sJEW61k3e0YhiYUkt9xXz6Af941QarQtYUVZOkatiYfSO -# IbsqBNc0QiwhHL+MZfLtkTJby5ZkPGZVW4IpgvkUCP1OGPyfsT6MkX+hwf/9MYIE -# DTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH3 -# WCB1BMr7wvQAAQAAAfcwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzEN -# BgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg/yRDeNFKnwzs5Rt50bP3NG59 -# w0d+IBESDcY47TiFwVAwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAh2pja -# a3ca0ecYuhu60uYHP/IKnPbedbVQJ5SoIH5Z4jCBmDCBgKR+MHwxCzAJBgNVBAYT -# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD -# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBU -# aW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB91ggdQTK+8L0AAEAAAH3MCIEIAhgyovm -# 0hKpfTDqUSQodYmLea3PP/1DIDJ7Pag/qvJBMA0GCSqGSIb3DQEBCwUABIICAI3M -# wyyVZaZPcrXoNBl5mLAJ5MmRJDgU+6UCsXyoqNu7dcTCKWRbdOwbI7ha8NW+4rn6 -# yzYRGhgI+9baZsQKF3Uo/rcQH8OyRtqlC3KxaFvfsZ2icfBByjy0d7GZAZLSHe/F -# BXUWdZh9UbDotE9rupdHAzgSlSQDWGuO22zCJmlt7eY6TDoiSXdaqIMFIK4RMAZd -# dZ+OiZjBOIooLV4ATNV58Q/rIOrZ9XQ06km/LBsjQwf6PwEpvQZmZ79zSHcs2qwL -# cc8AXwVtvvAyy2XxGVRRi7WS77TUDyMs4g+ewCtw7zFMft/WPjUS2Mq1BZAbyoHD -# g2ZzsQoOLOD6J46P21Aon5E3RHC1DmuCjWKfYx/a5+myomFa81++yd24QqmG8oV0 -# xuPnxFzd89dtAl5+UIORVYhW15jQbvUjHRThTUo7tmAFx6mPuE6JP3C8921TY7Y/ -# ysNpZj6br46oGcDv86ACtDr7rWRYgLAvbPLacxfsVXC3YGVK7CmX03n7wVAOrFqr -# 0CKROmV8648RimNuSWtokfoSoi8lkb23NUaq4MNrM9j3uJIyts0uR6Bd881tlXIM -# ui+aTFRHo4MmoA6mmzTqV66NEhscgBET2nVUCqWu9pANtAieXwMVkRSykUzbGLb2 -# pigzqgudYrehlVfB6KDxIX7R++VavMqpqCZsNKZP -# SIG # End signature block diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.psm1 b/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.psm1 deleted file mode 100644 index 6365e6d..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.psm1 +++ /dev/null @@ -1,1936 +0,0 @@ -## Copyright (c) Microsoft Corporation. All rights reserved. - -<# -.SYNOPSIS -This cmdlet collects a performance recording of Microsoft Defender Antivirus -scans. - -.DESCRIPTION -This cmdlet collects a performance recording of Microsoft Defender Antivirus -scans. These performance recordings contain Microsoft-Antimalware-Engine -and NT kernel process events and can be analyzed after collection using the -Get-MpPerformanceReport cmdlet. - -This cmdlet requires elevated administrator privileges. - -The performance analyzer provides insight into problematic files that could -cause performance degradation of Microsoft Defender Antivirus. This tool is -provided "AS IS", and is not intended to provide suggestions on exclusions. -Exclusions can reduce the level of protection on your endpoints. Exclusions, -if any, should be defined with caution. - -.EXAMPLE -New-MpPerformanceRecording -RecordTo:.\Defender-scans.etl - -#> -function New-MpPerformanceRecording { - [CmdletBinding(DefaultParameterSetName='Interactive')] - param( - - # Specifies the location where to save the Microsoft Defender Antivirus - # performance recording. - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string]$RecordTo, - - # Specifies the duration of the performance recording in seconds. - [Parameter(Mandatory=$true, ParameterSetName='Timed')] - [ValidateRange(0,2147483)] - [int]$Seconds, - - # Specifies the PSSession object in which to create and save the Microsoft - # Defender Antivirus performance recording. When you use this parameter, - # the RecordTo parameter refers to the local path on the remote machine. - [Parameter(Mandatory=$false)] - [System.Management.Automation.Runspaces.PSSession[]]$Session, - - # Optional argument to specifiy a different tool for recording traces. Default is wpr.exe - # When $Session parameter is used this path represents a location on the remote machine. - [Parameter(Mandatory=$false)] - [string]$WPRPath = $null - - ) - - [bool]$interactiveMode = ($PSCmdlet.ParameterSetName -eq 'Interactive') - [bool]$timedMode = ($PSCmdlet.ParameterSetName -eq 'Timed') - - # Hosts - [string]$powerShellHostConsole = 'ConsoleHost' - [string]$powerShellHostISE = 'Windows PowerShell ISE Host' - [string]$powerShellHostRemote = 'ServerRemoteHost' - - if ($interactiveMode -and ($Host.Name -notin @($powerShellHostConsole, $powerShellHostISE, $powerShellHostRemote))) { - $ex = New-Object System.Management.Automation.ItemNotFoundException 'Cmdlet supported only on local PowerShell console, Windows PowerShell ISE and remote PowerShell console.' - $category = [System.Management.Automation.ErrorCategory]::NotImplemented - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'NotImplemented',$category,$Host.Name - $psCmdlet.WriteError($errRecord) - return - } - - if ($null -ne $Session) { - [int]$RemotedSeconds = if ($timedMode) { $Seconds } else { -1 } - - Invoke-Command -Session:$session -ArgumentList:@($RecordTo, $RemotedSeconds) -ScriptBlock:{ - param( - [Parameter(Mandatory=$true)] - [ValidateNotNullOrEmpty()] - [string]$RecordTo, - - [Parameter(Mandatory=$true)] - [ValidateRange(-1,2147483)] - [int]$RemotedSeconds - ) - - if ($RemotedSeconds -eq -1) { - New-MpPerformanceRecording -RecordTo:$RecordTo -WPRPath:$WPRPath - } else { - New-MpPerformanceRecording -RecordTo:$RecordTo -Seconds:$RemotedSeconds -WPRPath:$WPRPath - } - } - - return - } - - if (-not (Test-Path -LiteralPath:$RecordTo -IsValid)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "Cannot record Microsoft Defender Antivirus performance recording to path '$RecordTo' because the location does not exist." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'InvalidPath',$category,$RecordTo - $psCmdlet.WriteError($errRecord) - return - } - - # Resolve any relative paths - $RecordTo = $psCmdlet.SessionState.Path.GetUnresolvedProviderPathFromPSPath($RecordTo) - - # Dependencies: WPR Profile - [string]$wprProfile = "$PSScriptRoot\MSFT_MpPerformanceRecording.wprp" - - if (-not (Test-Path -LiteralPath:$wprProfile -PathType:Leaf)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "Cannot find dependency file '$wprProfile' because it does not exist." - $category = [System.Management.Automation.ErrorCategory]::ObjectNotFound - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'PathNotFound',$category,$wprProfile - $psCmdlet.WriteError($errRecord) - return - } - - # Dependencies: WPR Version - try - { - # If user provides a valid string as $WPRPath we go with that. - [string]$wprCommand = $WPRPath - - if (!$wprCommand) { - $wprCommand = "wpr.exe" - $wprs = @(Get-Command -All "wpr" 2> $null) - - if ($wprs -and ($wprs.Length -ne 0)) { - $latestVersion = [System.Version]"0.0.0.0" - - $wprs | ForEach-Object { - $currentVersion = $_.Version - $currentFullPath = $_.Source - $currentVersionString = $currentVersion.ToString() - Write-Host "Found $currentVersionString at $currentFullPath" - - if ($currentVersion -gt $latestVersion) { - $latestVersion = $currentVersion - $wprCommand = $currentFullPath - } - } - } - } - } - catch - { - # Fallback to the old ways in case we encounter an error (ex: version string format change). - [string]$wprCommand = "wpr.exe" - } - finally - { - Write-Host "`nUsing $wprCommand version $((Get-Command $wprCommand).FileVersionInfo.FileVersion)`n" - } - - # - # Test dependency presence - # - if (-not (Get-Command $wprCommand -ErrorAction:SilentlyContinue)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "Cannot find dependency command '$wprCommand' because it does not exist." - $category = [System.Management.Automation.ErrorCategory]::ObjectNotFound - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'PathNotFound',$category,$wprCommand - $psCmdlet.WriteError($errRecord) - return - } - - # Exclude versions that have known bugs or are not supported any more. - [int]$wprFileVersion = ((Get-Command $wprCommand).Version.Major) -as [int] - if ($wprFileVersion -le 6) { - $ex = New-Object System.Management.Automation.PSNotSupportedException "You are using an older and unsupported version of '$wprCommand'. Please download and install Windows ADK:`r`nhttps://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install`r`nand try again." - $category = [System.Management.Automation.ErrorCategory]::NotInstalled - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'NotSupported',$category,$wprCommand - $psCmdlet.WriteError($errRecord) - return - } - - function CancelPerformanceRecording { - Write-Host "`n`nCancelling Microsoft Defender Antivirus performance recording... " -NoNewline - - & $wprCommand -cancel -instancename MSFT_MpPerformanceRecording - $wprCommandExitCode = $LASTEXITCODE - - switch ($wprCommandExitCode) { - 0 {} - 0xc5583000 { - Write-Error "Cannot cancel performance recording because currently Windows Performance Recorder is not recording." - return - } - default { - Write-Error ("Cannot cancel performance recording: 0x{0:x08}." -f $wprCommandExitCode) - return - } - } - - Write-Host "ok.`n`nRecording has been cancelled." - } - - # - # Ensure Ctrl-C doesn't abort the app without cleanup - # - - # - local PowerShell consoles: use [Console]::TreatControlCAsInput; cleanup performed and output preserved - # - PowerShell ISE: use try { ... } catch { throw } finally; cleanup performed and output preserved - # - remote PowerShell: use try { ... } catch { throw } finally; cleanup performed but output truncated - - [bool]$canTreatControlCAsInput = $interactiveMode -and ($Host.Name -eq $powerShellHostConsole) - $savedControlCAsInput = $null - - $shouldCancelRecordingOnTerminatingError = $false - - try - { - if ($canTreatControlCAsInput) { - $savedControlCAsInput = [Console]::TreatControlCAsInput - [Console]::TreatControlCAsInput = $true - } - - # - # Start recording - # - - Write-Host "Starting Microsoft Defender Antivirus performance recording... " -NoNewline - - $shouldCancelRecordingOnTerminatingError = $true - - & $wprCommand -start "$wprProfile!Scans.Light" -filemode -instancename MSFT_MpPerformanceRecording - $wprCommandExitCode = $LASTEXITCODE - - switch ($wprCommandExitCode) { - 0 {} - 0xc5583001 { - $shouldCancelRecordingOnTerminatingError = $false - Write-Error "Cannot start performance recording because Windows Performance Recorder is already recording." - return - } - default { - $shouldCancelRecordingOnTerminatingError = $false - Write-Error ("Cannot start performance recording: 0x{0:x08}." -f $wprCommandExitCode) - return - } - } - - Write-Host "ok.`n`nRecording has started." -NoNewline - - if ($timedMode) { - Write-Host "`n`n Recording for $Seconds seconds... " -NoNewline - - Start-Sleep -Seconds:$Seconds - - Write-Host "ok." -NoNewline - } elseif ($interactiveMode) { - $stopPrompt = "`n`n=> Reproduce the scenario that is impacting the performance on your device.`n`n Press to stop and save recording or to cancel recording" - - if ($canTreatControlCAsInput) { - Write-Host "${stopPrompt}: " - - do { - $key = [Console]::ReadKey($true) - if (($key.Modifiers -eq [ConsoleModifiers]::Control) -and (($key.Key -eq [ConsoleKey]::C))) { - - CancelPerformanceRecording - - $shouldCancelRecordingOnTerminatingError = $false - - # - # Restore Ctrl-C behavior - # - - [Console]::TreatControlCAsInput = $savedControlCAsInput - - return - } - - } while (($key.Modifiers -band ([ConsoleModifiers]::Alt -bor [ConsoleModifiers]::Control -bor [ConsoleModifiers]::Shift)) -or ($key.Key -ne [ConsoleKey]::Enter)) - - } else { - Read-Host -Prompt:$stopPrompt - } - } - - # - # Stop recording - # - - Write-Host "`n`nStopping Microsoft Defender Antivirus performance recording... " - - & $wprCommand -stop $RecordTo -instancename MSFT_MpPerformanceRecording - $wprCommandExitCode = $LASTEXITCODE - - switch ($wprCommandExitCode) { - 0 { - $shouldCancelRecordingOnTerminatingError = $false - } - 0xc5583000 { - $shouldCancelRecordingOnTerminatingError = $false - Write-Error "Cannot stop performance recording because Windows Performance Recorder is not recording a trace." - return - } - default { - Write-Error ("Cannot stop performance recording: 0x{0:x08}." -f $wprCommandExitCode) - return - } - } - - Write-Host "ok.`n`nRecording has been saved to '$RecordTo'." - - Write-Host ` -' -The performance analyzer provides insight into problematic files that could -cause performance degradation of Microsoft Defender Antivirus. This tool is -provided "AS IS", and is not intended to provide suggestions on exclusions. -Exclusions can reduce the level of protection on your endpoints. Exclusions, -if any, should be defined with caution. -' -Write-Host ` -' -The trace you have just captured may contain personally identifiable information, -including but not necessarily limited to paths to files accessed, paths to -registry accessed and process names. Exact information depends on the events that -were logged. Please be aware of this when sharing this trace with other people. -' - } catch { - throw - } finally { - if ($shouldCancelRecordingOnTerminatingError) { - CancelPerformanceRecording - } - - if ($null -ne $savedControlCAsInput) { - # - # Restore Ctrl-C behavior - # - - [Console]::TreatControlCAsInput = $savedControlCAsInput - } - } -} - -function PadUserDateTime -{ - [OutputType([DateTime])] - param( - [Parameter(Mandatory = $true, Position = 0)] - [DateTime]$UserDateTime - ) - - # Padding user input to include all events up to the start of the next second. - if (($UserDateTime.Ticks % 10000000) -eq 0) - { - return $UserDateTime.AddTicks(9999999) - } - else - { - return $UserDateTime - } -} - -function ValidateTimeInterval -{ - [OutputType([PSCustomObject])] - param( - [DateTime]$MinStartTime = [DateTime]::MinValue, - [DateTime]$MinEndTime = [DateTime]::MinValue, - [DateTime]$MaxStartTime = [DateTime]::MaxValue, - [DateTime]$MaxEndTime = [DateTime]::MaxValue - ) - - $ret = [PSCustomObject]@{ - arguments = [string[]]@() - status = $false - } - - if ($MinStartTime -gt $MaxEndTime) - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MinStartTime '$MinStartTime' should have been lower than MaxEndTime '$MaxEndTime'" - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Invalid time interval',$category,"'$MinStartTime' .. '$MaxEndTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - if ($MinStartTime -gt $MaxStartTime) - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MinStartTime '$MinStartTime' should have been lower than MaxStartTime '$MaxStartTime'" - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Invalid time interval',$category,"'$MinStartTime' .. '$MaxStartTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - if ($MinEndTime -gt $MaxEndTime) - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MinEndTime '$MinEndTime' should have been lower than MaxEndTime '$MaxEndTime'" - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Invalid time interval',$category,"'$MinEndTime' .. '$MaxEndTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - if ($MinStartTime -gt [DateTime]::MinValue) - { - try - { - $MinStartFileTime = $MinStartTime.ToFileTime() - } - catch - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MinStartTime '$MinStartTime' is not a valid timestamp." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Value has to be a local DateTime between "January 1, 1601 12:00:00 AM UTC" and "December 31, 9999 11:59:59 PM UTC"',$category,"'$MinStartTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - $ret.arguments += @('-MinStartTime', $MinStartFileTime) - } - - if ($MaxEndTime -lt [DateTime]::MaxValue) - { - try - { - $MaxEndFileTime = $MaxEndTime.ToFileTime() - } - catch - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MaxEndTime '$MaxEndTime' is not a valid timestamp." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Value has to be a local DateTime between "January 1, 1601 12:00:00 AM UTC" and "December 31, 9999 11:59:59 PM UTC"',$category,"'$MaxEndTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - $ret.arguments += @('-MaxEndTime', $MaxEndFileTime) - } - - if ($MaxStartTime -lt [DateTime]::MaxValue) - { - try - { - $MaxStartFileTime = $MaxStartTime.ToFileTime() - } - catch - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MaxStartTime '$MaxStartTime' is not a valid timestamp." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Value has to be a local DateTime between "January 1, 1601 12:00:00 AM UTC" and "December 31, 9999 11:59:59 PM UTC"',$category,"'$MaxStartTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - $ret.arguments += @('-MaxStartTime', $MaxStartFileTime) - } - - if ($MinEndTime -gt [DateTime]::MinValue) - { - try - { - $MinEndFileTime = $MinEndTime.ToFileTime() - } - catch - { - $ex = New-Object System.Management.Automation.ValidationMetadataException "MinEndTime '$MinEndTime' is not a valid timestamp." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'Value has to be a local DateTime between "January 1, 1601 12:00:00 AM UTC" and "December 31, 9999 11:59:59 PM UTC"',$category,"'$MinEndTime'" - $psCmdlet.WriteError($errRecord) - return $ret - } - - $ret.arguments += @('-MinEndTime', $MinEndFileTime) - } - - $ret.status = $true - return $ret -} - -function ParseFriendlyDuration -{ - [OutputType([TimeSpan])] - param( - [Parameter(Mandatory = $true, Position = 0)] - [string] - $FriendlyDuration - ) - - if ($FriendlyDuration -match '^(\d+)(?:\.(\d+))?(sec|ms|us)$') - { - [string]$seconds = $Matches[1] - [string]$decimals = $Matches[2] - [string]$unit = $Matches[3] - - [uint32]$magnitude = - switch ($unit) - { - 'sec' {7} - 'ms' {4} - 'us' {1} - } - - if ($decimals.Length -gt $magnitude) - { - throw [System.ArgumentException]::new("String '$FriendlyDuration' was not recognized as a valid Duration: $($decimals.Length) decimals specified for time unit '$unit'; at most $magnitude expected.") - } - - return [timespan]::FromTicks([int64]::Parse($seconds + $decimals.PadRight($magnitude, '0'))) - } - - [timespan]$result = [timespan]::FromTicks(0) - if ([timespan]::TryParse($FriendlyDuration, [ref]$result)) - { - return $result - } - - throw [System.ArgumentException]::new("String '$FriendlyDuration' was not recognized as a valid Duration; expected a value like '0.1234567sec' or '0.1234ms' or '0.1us' or a valid TimeSpan.") -} - -[scriptblock]$FriendlyTimeSpanToString = { '{0:0.0000}ms' -f ($this.Ticks / 10000.0) } - -function New-FriendlyTimeSpan -{ - param( - [Parameter(Mandatory = $true)] - [uint64]$Ticks, - - [bool]$Raw = $false - ) - - if ($Raw) { - return $Ticks - } - - $result = [TimeSpan]::FromTicks($Ticks) - $result.PsTypeNames.Insert(0, 'MpPerformanceReport.TimeSpan') - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyTimeSpanToString - $result -} - -function New-FriendlyDateTime -{ - param( - [Parameter(Mandatory = $true)] - [uint64]$FileTime, - - [bool]$Raw = $false - ) - - if ($Raw) { - return $FileTime - } - - [DateTime]::FromFileTime($FileTime) -} - -function Add-DefenderCollectionType -{ - param( - [Parameter(Mandatory = $true)] - [ref]$CollectionRef - ) - - if ($CollectionRef.Value.Length -and ($CollectionRef.Value | Get-Member -Name:'Processes','Files','Extensions','Scans','Folder')) - { - $CollectionRef.Value.PSTypeNames.Insert(0, 'MpPerformanceReport.NestedCollection') - } -} - -[scriptblock]$FriendlyScanInfoToString = { - [PSCustomObject]@{ - ScanType = $this.ScanType - StartTime = $this.StartTime - EndTime = $this.EndTime - Duration = $this.Duration - Reason = $this.Reason - Path = $this.Path - ProcessPath = $this.ProcessPath - ProcessId = $this.ProcessId - Image = $this.Image - } -} - -function Get-ScanComments -{ - param( - [PSCustomObject[]]$SecondaryEvents, - [bool]$Raw = $false - ) - - $Comments = @() - - foreach ($item in @($SecondaryEvents | Sort-Object -Property:StartTime)) { - if (($item | Get-Member -Name:'Message' -MemberType:NoteProperty).Count -eq 1) { - if (($item | Get-Member -Name:'Duration' -MemberType:NoteProperty).Count -eq 1) { - $Duration = New-FriendlyTimeSpan -Ticks:$item.Duration -Raw:$Raw - $StartTime = New-FriendlyDateTime -FileTime:$item.StartTime -Raw:$Raw - - $Comments += "Expensive operation `"{0}`" started at {1} lasted {2}" -f ($item.Message, $StartTime, $Duration.ToString()) - - if (($item | Get-Member -Name:'Debug' -MemberType:NoteProperty).Count -eq 1) { - $item.Debug | ForEach-Object { - if ($_.EndsWith("is NOT trusted") -or $_.StartsWith("Not trusted, ") -or $_.ToLower().Contains("error") -or $_.Contains("Result of ValidateTrust")) { - $Comments += "$_" - } - } - } - } - else { - if ($item.Message.Contains("subtype=Lowfi")) { - $Comments += $item.Message.Replace("subtype=Lowfi", "Low-fidelity detection") - } - else { - $Comments += $item.Message - } - } - } - elseif (($item | Get-Member -Name:'ScanType' -MemberType:NoteProperty).Count -eq 1) { - $Duration = New-FriendlyTimeSpan -Ticks:$item.Duration -Raw:$Raw - $OpId = "Internal opertion" - - if (($item | Get-Member -Name:'Path' -MemberType:NoteProperty).Count -eq 1) { - $OpId = $item.Path - } - elseif (($item | Get-Member -Name:'ProcessPath' -MemberType:NoteProperty).Count -eq 1) { - $OpId = $item.ProcessPath - } - - $Comments += "{0} {1} lasted {2}" -f ($item.ScanType, $OpId, $Duration.ToString()) - } - } - - $Comments -} - -filter ConvertTo-DefenderScanInfo -{ - param( - [bool]$Raw = $false - ) - - $result = [PSCustomObject]@{ - ScanType = [string]$_.ScanType - StartTime = New-FriendlyDateTime -FileTime:$_.StartTime -Raw:$Raw - EndTime = New-FriendlyDateTime -FileTime:$_.EndTime -Raw:$Raw - Duration = New-FriendlyTimeSpan -Ticks:$_.Duration -Raw:$Raw - Reason = [string]$_.Reason - SkipReason = [string]$_.SkipReason - } - - if (($_ | Get-Member -Name:'Path' -MemberType:NoteProperty).Count -eq 1) { - $result | Add-Member -NotePropertyName:'Path' -NotePropertyValue:([string]$_.Path) - } - - if (($_ | Get-Member -Name:'ProcessPath' -MemberType:NoteProperty).Count -eq 1) { - $result | Add-Member -NotePropertyName:'ProcessPath' -NotePropertyValue:([string]$_.ProcessPath) - } - - if (($_ | Get-Member -Name:'Image' -MemberType:NoteProperty).Count -eq 1) { - $result | Add-Member -NotePropertyName:'Image' -NotePropertyValue:([string]$_.Image) - } - elseif ($_.ProcessPath -and (-not $_.ProcessPath.StartsWith("pid"))) { - try { - $result | Add-Member -NotePropertyName:'Image' -NotePropertyValue:([string]([System.IO.FileInfo]$_.ProcessPath).Name) - } catch { - # Silently ignore. - } - } - - $ProcessId = if ($_.ProcessId -gt 0) { [int]$_.ProcessId } elseif ($_.ScannedProcessId -gt 0) { [int]$_.ScannedProcessId } else { $null } - if ($ProcessId) { - $result | Add-Member -NotePropertyName:'ProcessId' -NotePropertyValue:([int]$ProcessId) - } - - if ($result.Image -and $result.ProcessId) { - $ProcessName = "{0} ({1})" -f $result.Image, $result.ProcessId - $result | Add-Member -NotePropertyName:'ProcessName' -NotePropertyValue:([string]$ProcessName) - } - - if ((($_ | Get-Member -Name:'Extra' -MemberType:NoteProperty).Count -eq 1) -and ($_.Extra.Count -gt 0)) { - $Comments = @(Get-ScanComments -SecondaryEvents:$_.Extra -Raw:$Raw) - $result | Add-Member -NotePropertyName:'Comments' -NotePropertyValue:$Comments - } - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScanInfo') - } - - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyScanInfoToString - $result -} - -filter ConvertTo-DefenderScanOverview -{ - param( - [bool]$Raw = $false - ) - - $vals = [ordered]@{} - - foreach ($entry in $_.PSObject.Properties) { - if ($entry.Value) { - $Key = $entry.Name.Replace("_", " ") - - if ($Key.EndsWith("Time")) { - $vals[$Key] = New-FriendlyDateTime -FileTime:$entry.Value -Raw:$Raw - } - elseif ($Key.EndsWith("Duration")) { - $vals[$Key] = New-FriendlyTimeSpan -Ticks:$entry.Value -Raw:$Raw - } - else { - $vals[$Key] = $entry.Value - } - } - } - - # Remove duplicates - if (($_ | Get-Member -Name:'PerfHints' -MemberType:NoteProperty).Count -eq 1) { - $hints = [ordered]@{} - foreach ($hint in $_.PerfHints) { - $hints[$hint] = $true - } - - $vals["PerfHints"] = @($hints.Keys) - } - - $result = New-Object PSCustomObject -Property:$vals - $result -} - -filter ConvertTo-DefenderScanStats -{ - param( - [bool]$Raw = $false - ) - - $result = [PSCustomObject]@{ - Count = $_.Count - TotalDuration = New-FriendlyTimeSpan -Ticks:$_.TotalDuration -Raw:$Raw - MinDuration = New-FriendlyTimeSpan -Ticks:$_.MinDuration -Raw:$Raw - AverageDuration = New-FriendlyTimeSpan -Ticks:$_.AverageDuration -Raw:$Raw - MaxDuration = New-FriendlyTimeSpan -Ticks:$_.MaxDuration -Raw:$Raw - MedianDuration = New-FriendlyTimeSpan -Ticks:$_.MedianDuration -Raw:$Raw - } - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScanStats') - } - - $result -} - -[scriptblock]$FriendlyScannedFilePathStatsToString = { - [PSCustomObject]@{ - Count = $this.Count - TotalDuration = $this.TotalDuration - MinDuration = $this.MinDuration - AverageDuration = $this.AverageDuration - MaxDuration = $this.MaxDuration - MedianDuration = $this.MedianDuration - Path = $this.Path - } -} - -filter ConvertTo-DefenderScannedFilePathStats -{ - param( - [bool]$Raw = $false - ) - - $result = $_ | ConvertTo-DefenderScanStats -Raw:$Raw - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScannedFilePathStats') - } - - $result | Add-Member -NotePropertyName:'Path' -NotePropertyValue:($_.Path) - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyScannedFilePathStatsToString - - if ($null -ne $_.Scans) - { - $result | Add-Member -NotePropertyName:'Scans' -NotePropertyValue:@( - $_.Scans | ConvertTo-DefenderScanInfo -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Scans) - } - } - - if ($null -ne $_.Processes) - { - $result | Add-Member -NotePropertyName:'Processes' -NotePropertyValue:@( - $_.Processes | ConvertTo-DefenderScannedProcessStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Processes) - } - } - - $result -} - -[scriptblock]$FriendlyScannedPathsStatsToString = { - [PSCustomObject]@{ - Count = $this.Count - TotalDuration = $this.TotalDuration - MinDuration = $this.MinDuration - AverageDuration = $this.AverageDuration - MaxDuration = $this.MaxDuration - MedianDuration = $this.MedianDuration - Path = $this.Path - Folder = $this.Folder - } -} - -filter ConvertTo-DefenderScannedPathsStats -{ - param( - [bool]$Raw = $false - ) - - $result = $_ | ConvertTo-DefenderScanStats -Raw:$Raw - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScannedPathStats') - } - - $result | Add-Member -NotePropertyName:'Path' -NotePropertyValue:($_.Path) - - if ($null -ne $_.Folder) - { - $result | Add-Member -NotePropertyName:'Folder' -NotePropertyValue:@( - $_.Folder | ConvertTo-DefenderScannedPathsStats -Raw:$Raw - ) - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyScannedPathsStatsToString - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Folder) - } - } - - if ($null -ne $_.Files) - { - $result | Add-Member -NotePropertyName:'Files' -NotePropertyValue:@( - $_.Files | ConvertTo-DefenderScannedFilePathStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Files) - } - } - - if ($null -ne $_.Scans) - { - $result | Add-Member -NotePropertyName:'Scans' -NotePropertyValue:@( - $_.Scans | ConvertTo-DefenderScanInfo -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Scans) - } - } - - if ($null -ne $_.Processes) - { - $result | Add-Member -NotePropertyName:'Processes' -NotePropertyValue:@( - $_.Processes | ConvertTo-DefenderScannedProcessStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Processes) - } - } - - $result -} - -[scriptblock]$FriendlyScannedFileExtensionStatsToString = { - [PSCustomObject]@{ - Count = $this.Count - TotalDuration = $this.TotalDuration - MinDuration = $this.MinDuration - AverageDuration = $this.AverageDuration - MaxDuration = $this.MaxDuration - MedianDuration = $this.MedianDuration - Extension = $this.Extension - } -} - -filter ConvertTo-DefenderScannedFileExtensionStats -{ - param( - [bool]$Raw = $false - ) - - $result = $_ | ConvertTo-DefenderScanStats -Raw:$Raw - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScannedFileExtensionStats') - } - - $result | Add-Member -NotePropertyName:'Extension' -NotePropertyValue:($_.Extension) - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyScannedFileExtensionStatsToString - - if ($null -ne $_.Scans) - { - $result | Add-Member -NotePropertyName:'Scans' -NotePropertyValue:@( - $_.Scans | ConvertTo-DefenderScanInfo -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Scans) - } - } - - if ($null -ne $_.Files) - { - $result | Add-Member -NotePropertyName:'Files' -NotePropertyValue:@( - $_.Files | ConvertTo-DefenderScannedFilePathStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Files) - } - } - - if ($null -ne $_.Processes) - { - $result | Add-Member -NotePropertyName:'Processes' -NotePropertyValue:@( - $_.Processes | ConvertTo-DefenderScannedProcessStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Processes) - } - } - - - if ($null -ne $_.Folder) - { - $result | Add-Member -NotePropertyName:'Folder' -NotePropertyValue:@( - $_.Folder | ConvertTo-DefenderScannedPathsStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Folder) - } - } - - $result -} - -[scriptblock]$FriendlyScannedProcessStatsToString = { - [PSCustomObject]@{ - Count = $this.Count - TotalDuration = $this.TotalDuration - MinDuration = $this.MinDuration - AverageDuration = $this.AverageDuration - MaxDuration = $this.MaxDuration - MedianDuration = $this.MedianDuration - ProcessPath = $this.ProcessPath - } -} - -filter ConvertTo-DefenderScannedProcessStats -{ - param( - [bool]$Raw - ) - - $result = $_ | ConvertTo-DefenderScanStats -Raw:$Raw - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.ScannedProcessStats') - } - - $result | Add-Member -NotePropertyName:'ProcessPath' -NotePropertyValue:($_.Process) - $result | Add-Member -Force -MemberType:ScriptMethod -Name:'ToString' -Value:$FriendlyScannedProcessStatsToString - - if ($null -ne $_.Scans) - { - $result | Add-Member -NotePropertyName:'Scans' -NotePropertyValue:@( - $_.Scans | ConvertTo-DefenderScanInfo -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Scans) - } - } - - if ($null -ne $_.Files) - { - $result | Add-Member -NotePropertyName:'Files' -NotePropertyValue:@( - $_.Files | ConvertTo-DefenderScannedFilePathStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Files) - } - } - - if ($null -ne $_.Extensions) - { - $result | Add-Member -NotePropertyName:'Extensions' -NotePropertyValue:@( - $_.Extensions | ConvertTo-DefenderScannedFileExtensionStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Extensions) - } - } - - if ($null -ne $_.Folder) - { - $result | Add-Member -NotePropertyName:'Folder' -NotePropertyValue:@( - $_.Folder | ConvertTo-DefenderScannedPathsStats -Raw:$Raw - ) - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.Folder) - } - } - - $result -} - -<# -.SYNOPSIS -This cmdlet reports the file paths, file extensions, and processes that cause -the highest impact to Microsoft Defender Antivirus scans. - -.DESCRIPTION -This cmdlet analyzes a previously collected Microsoft Defender Antivirus -performance recording and reports the file paths, file extensions and processes -that cause the highest impact to Microsoft Defender Antivirus scans. - -The performance analyzer provides insight into problematic files that could -cause performance degradation of Microsoft Defender Antivirus. This tool is -provided "AS IS", and is not intended to provide suggestions on exclusions. -Exclusions can reduce the level of protection on your endpoints. Exclusions, -if any, should be defined with caution. - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 -TopExtensions:10 -TopProcesses:10 -TopScans:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 -TopExtensions:10 -TopProcesses:10 -TopScans:10 -Raw | ConvertTo-Json - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 -TopScansPerFile:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 -TopProcessesPerFile:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopFiles:10 -TopProcessesPerFile:3 -TopScansPerProcessPerFile:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopScansPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopScansPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopFilesPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopFilesPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopFilesPerPath:3 -TopScansPerFilePerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopFilesPerPath:3 -TopScansPerFilePerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopExtensionsPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopExtensionsPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopExtensionsPerPath:3 -TopScansPerExtensionPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopExtensionsPerPath:3 -TopScansPerExtensionPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopProcessesPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopProcessesPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopPathsDepth:3 -TopProcessesPerPath:3 -TopScansPerProcessPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopPaths:10 -TopProcessesPerPath:3 -TopScansPerProcessPerPath:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopScansPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopPathsPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopPathsPerExtension:3 -TopPathsDepth:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopPathsPerExtension:3 -TopPathsDepth:3 -TopScansPerPathPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopPathsPerExtension:3 -TopScansPerPathPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopFilesPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopFilesPerExtension:3 -TopScansPerFilePerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopProcessesPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopExtensions:10 -TopProcessesPerExtension:3 -TopScansPerProcessPerExtension:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopScansPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopExtensionsPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopExtensionsPerProcess:3 -TopScansPerExtensionPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopFilesPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopFilesPerProcess:3 -TopScansPerFilePerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopPathsPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopPathsPerProcess:3 -TopPathsDepth:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopPathsPerProcess:3 -TopPathsDepth:3 -TopScansPerPathPerProcess:3 - -.EXAMPLE -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopProcesses:10 -TopPathsPerProcess:3 -TopScansPerPathPerProcess:3 - -.EXAMPLE -# Find top 10 scans with longest durations that both start and end between MinStartTime and MaxEndTime: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:"5/14/2022 7:01:11 AM" -MaxEndTime:"5/14/2022 7:01:41 AM" - -.EXAMPLE -# Find top 10 scans with longest durations between MinEndTime and MaxStartTime, possibly partially overlapping this period -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinEndTime:"5/14/2022 7:01:11 AM" -MaxStartTime:"5/14/2022 7:01:41 AM" - -.EXAMPLE -# Find top 10 scans with longest durations between MinStartTime and MaxStartTime, possibly partially overlapping this period -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:"5/14/2022 7:01:11 AM" -MaxStartTime:"5/14/2022 7:01:41 AM" - -.EXAMPLE -# Find top 10 scans with longest durations that start at MinStartTime or later: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:"5/14/2022 7:01:11 AM" - -.EXAMPLE -# Find top 10 scans with longest durations that start before or at MaxStartTime: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MaxStartTime:"5/14/2022 7:01:11 AM" - -.EXAMPLE -# Find top 10 scans with longest durations that end at MinEndTime or later: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinEndTime:"5/14/2022 7:01:11 AM" - -.EXAMPLE -# Find top 10 scans with longest durations that end before or at MaxEndTime: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MaxEndTime:"5/14/2022 7:01:11 AM" - -.EXAMPLE -# Find top 10 scans with longest durations, impacting the current interval, that did not start or end between MaxStartTime and MinEndTime. -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MaxStartTime:"5/14/2022 7:01:11 AM" -MinEndTime:"5/14/2022 7:01:41 AM" - -.EXAMPLE -# Find top 10 scans with longest durations, impacting the current interval, that started between MinStartTime and MaxStartTime, and ended later than MinEndTime. -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:"5/14/2022 7:00:00 AM" -MaxStartTime:"5/14/2022 7:01:11 AM" -MinEndTime:"5/14/2022 7:01:41 AM" - -.EXAMPLE -# Find top 10 scans with longest durations, impacting the current interval, that started before MaxStartTime, and ended between MinEndTime and MaxEndTime. -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MaxStartTime:"5/14/2022 7:01:11 AM" -MinEndTime:"5/14/2022 7:01:41 AM" -MaxEndTime:"5/14/2022 7:02:00 AM" - -.EXAMPLE -# Find top 10 scans with longest durations, impacting the current interval, that started between MinStartTime and MaxStartTime, and ended between MinEndTime and MaxEndTime. -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:"5/14/2022 7:00:00 AM" -MaxStartTime:"5/14/2022 7:01:11 AM" -MinEndTime:"5/14/2022 7:01:41 AM" -MaxEndTime:"5/14/2022 7:02:00 AM" - -.EXAMPLE -# Find top 10 scans with longest durations that both start and end between MinStartTime and MaxEndTime, using DateTime as raw numbers in FILETIME format, e.g. from -Raw report format: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinStartTime:([DateTime]::FromFileTime(132969744714304340)) -MaxEndTime:([DateTime]::FromFileTime(132969745000971033)) - -.EXAMPLE -# Find top 10 scans with longest durations between MinEndTime and MaxStartTime, possibly partially overlapping this period, using DateTime as raw numbers in FILETIME format, e.g. from -Raw report format: -Get-MpPerformanceReport -Path:.\Defender-scans.etl -TopScans:10 -MinEndTime:([DateTime]::FromFileTime(132969744714304340)) -MaxStartTime:([DateTime]::FromFileTime(132969745000971033)) - -.EXAMPLE -# Display a summary or overview of the scans captured in the trace, in addition to the information displayed regularly through other arguments. Output is influenced by time interval arguments MinStartTime and MaxEndTime. -Get-MpPerformanceReport -Path:.\Defender-scans.etl [other arguments] -Overview - -#> - -function Get-MpPerformanceReport { - [CmdletBinding()] - param( - # Specifies the location of Microsoft Defender Antivirus performance recording to analyze. - [Parameter(Mandatory=$true, - Position=0, - ValueFromPipeline=$true, - ValueFromPipelineByPropertyName=$true, - HelpMessage="Location of Microsoft Defender Antivirus performance recording.")] - [ValidateNotNullOrEmpty()] - [string]$Path, - - # Requests a top files report and specifies how many top files to output, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopFiles = 0, - - # Specifies how many top scans to output for each top file, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerFile = 0, - - # Specifies how many top processes to output for each top file, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopProcessesPerFile = 0, - - # Specifies how many top scans to output for each top process for each top file, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerProcessPerFile = 0, - - # Requests a top paths report and specifies how many top entries to output, sorted by "Duration". This is called recursively for each directory entry. Scans are grouped hierarchically per folder and sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopPaths = 0, - - # Specifies the maxmimum depth (path-wise) that will be used to grop scans when $TopPaths is used. - [ValidateRange(1,1024)] - [int]$TopPathsDepth = 0, - - # Specifies how many top scans to output for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerPath = 0, - - # Specifies how many top files to output for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopFilesPerPath = 0, - - # Specifies how many top scans to output for each top file for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerFilePerPath = 0, - - # Specifies how many top extensions to output for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopExtensionsPerPath = 0, - - # Specifies how many top scans to output for each top extension for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerExtensionPerPath = 0, - - # Specifies how many top processes to output for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopProcessesPerPath = 0, - - # Specifies how many top scans to output for each top process for each top path, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerProcessPerPath = 0, - - # Requests a top extensions report and specifies how many top extensions to output, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopExtensions = 0, - - # Specifies how many top scans to output for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerExtension = 0, - - # Specifies how many top paths to output for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopPathsPerExtension = 0, - - # Specifies how many top scans to output for each top path for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerPathPerExtension = 0, - - # Specifies how many top files to output for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopFilesPerExtension = 0, - - # Specifies how many top scans to output for each top file for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerFilePerExtension = 0, - - # Specifies how many top processes to output for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopProcessesPerExtension = 0, - - # Specifies how many top scans to output for each top process for each top extension, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerProcessPerExtension = 0, - - # Requests a top processes report and specifies how many top processes to output, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopProcesses = 0, - - # Specifies how many top scans to output for each top process in the Top Processes report, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerProcess = 0, - - # Specifies how many top files to output for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopFilesPerProcess = 0, - - # Specifies how many top scans to output for each top file for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerFilePerProcess = 0, - - # Specifies how many top extensions to output for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopExtensionsPerProcess = 0, - - # Specifies how many top scans to output for each top extension for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerExtensionPerProcess = 0, - - # Specifies how many top paths to output for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopPathsPerProcess = 0, - - # Specifies how many top scans to output for each top path for each top process, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScansPerPathPerProcess = 0, - - # Requests a top scans report and specifies how many top scans to output, sorted by "Duration". - [ValidateRange(0,([int]::MaxValue))] - [int]$TopScans = 0, - - ## TimeSpan format: d | h:m | h:m:s | d.h:m | h:m:.f | h:m:s.f | d.h:m:s | d.h:m:.f | d.h:m:s.f => d | (d.)?h:m(:s(.f)?)? | ((d.)?h:m:.f) - - # Specifies the minimum duration of any scans or total scan durations of files, extensions and processes included in the report. - # Accepts values like '0.1234567sec' or '0.1234ms' or '0.1us' or a valid TimeSpan. - [ValidatePattern('^(?:(?:(\d+)(?:\.(\d+))?(sec|ms|us))|(?:\d+)|(?:(\d+\.)?\d+:\d+(?::\d+(?:\.\d+)?)?)|(?:(\d+\.)?\d+:\d+:\.\d+))$')] - [string]$MinDuration = '0us', - - # Specifies the minimum start time of scans included in the report. Accepts a valid DateTime. - [DateTime]$MinStartTime = [DateTime]::MinValue, - - # Specifies the minimum end time of scans included in the report. Accepts a valid DateTime. - [DateTime]$MinEndTime = [DateTime]::MinValue, - - # Specifies the maximum start time of scans included in the report. Accepts a valid DateTime. - [DateTime]$MaxStartTime = [DateTime]::MaxValue, - - # Specifies the maximum end time of scans included in the report. Accepts a valid DateTime. - [DateTime]$MaxEndTime = [DateTime]::MaxValue, - - # Adds an overview or summary of the scans captured in the trace to the regular output. - [switch]$Overview, - - # Specifies that the output should be machine readable and readily convertible to serialization formats like JSON. - # - Collections and elements are not be formatted. - # - TimeSpan values are represented as number of 100-nanosecond intervals. - # - DateTime values are represented as number of 100-nanosecond intervals since January 1, 1601 (UTC). - [switch]$Raw - ) - - # - # Validate performance recording presence - # - - if (-not (Test-Path -Path:$Path -PathType:Leaf)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "Cannot find path '$Path'." - $category = [System.Management.Automation.ErrorCategory]::ObjectNotFound - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'PathNotFound',$category,$Path - $psCmdlet.WriteError($errRecord) - return - } - - function ParameterValidationError { - [CmdletBinding()] - param ( - [Parameter(Mandatory)] - [string] - $ParameterName, - - [Parameter(Mandatory)] - [string] - $ParentParameterName - ) - - $ex = New-Object System.Management.Automation.ValidationMetadataException "Parameter '$ParameterName' requires parameter '$ParentParameterName'." - $category = [System.Management.Automation.ErrorCategory]::MetadataError - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'InvalidParameter',$category,$ParameterName - $psCmdlet.WriteError($errRecord) - } - - # - # Additional parameter validation - # - - if ($TopFiles -eq 0) - { - if ($TopScansPerFile -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerFile' -ParentParameterName:'TopFiles' - } - - if ($TopProcessesPerFile -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopProcessesPerFile' -ParentParameterName:'TopFiles' - } - } - - if ($TopProcessesPerFile -eq 0) - { - if ($TopScansPerProcessPerFile -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerProcessPerFile' -ParentParameterName:'TopProcessesPerFile' - } - } - - if ($TopPathsDepth -gt 0) - { - if (($TopPaths -eq 0) -and ($TopPathsPerProcess -eq 0) -and ($TopPathsPerExtension -eq 0)) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopPathsDepth' -ParentParameterName:'TopPaths or TopPathsPerProcess or TopPathsPerExtension' - } - } - - if ($TopPaths -eq 0) - { - if ($TopScansPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerPath' -ParentParameterName:'TopPaths' - } - - if ($TopFilesPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopFilesPerPath' -ParentParameterName:'TopPaths' - } - - if ($TopExtensionsPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopExtensionsPerPath' -ParentParameterName:'TopPaths' - } - - if ($TopProcessesPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopProcessesPerPath' -ParentParameterName:'TopPaths' - } - } - - if ($TopFilesPerPath -eq 0) - { - if ($TopScansPerFilePerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerFilePerPath' -ParentParameterName:'TopFilesPerPath' - } - } - - if ($TopExtensionsPerPath -eq 0) - { - if ($TopScansPerExtensionPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerExtensionPerPath' -ParentParameterName:'TopExtensionsPerPath' - } - } - - if ($TopProcessesPerPath -eq 0) - { - if ($TopScansPerProcessPerPath -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerProcessPerPath' -ParentParameterName:'TopProcessesPerPath' - } - } - - if ($TopExtensions -eq 0) - { - if ($TopScansPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerExtension' -ParentParameterName:'TopExtensions' - } - - if ($TopFilesPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopFilesPerExtension' -ParentParameterName:'TopExtensions' - } - - if ($TopProcessesPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopProcessesPerExtension' -ParentParameterName:'TopExtensions' - } - - if ($TopPathsPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopPathsPerExtension' -ParentParameterName:'TopExtensions' - } - } - - if ($TopFilesPerExtension -eq 0) - { - if ($TopScansPerFilePerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerFilePerExtension' -ParentParameterName:'TopFilesPerExtension' - } - } - - if ($TopProcessesPerExtension -eq 0) - { - if ($TopScansPerProcessPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerProcessPerExtension' -ParentParameterName:'TopProcessesPerExtension' - } - } - - if ($TopPathsPerExtension -eq 0) - { - if ($TopScansPerPathPerExtension -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerPathPerExtension' -ParentParameterName:'TopPathsPerExtension' - } - } - - if ($TopProcesses -eq 0) - { - if ($TopScansPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerProcess' -ParentParameterName:'TopProcesses' - } - - if ($TopFilesPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopFilesPerProcess' -ParentParameterName:'TopProcesses' - } - - if ($TopExtensionsPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopExtensionsPerProcess' -ParentParameterName:'TopProcesses' - } - - if ($TopPathsPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopPathsPerProcess' -ParentParameterName:'TopProcesses' - } - } - - if ($TopFilesPerProcess -eq 0) - { - if ($TopScansPerFilePerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerFilePerProcess' -ParentParameterName:'TopFilesPerProcess' - } - } - - if ($TopExtensionsPerProcess -eq 0) - { - if ($TopScansPerExtensionPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerExtensionPerProcess' -ParentParameterName:'TopExtensionsPerProcess' - } - } - - if ($TopPathsPerProcess -eq 0) - { - if ($TopScansPerPathPerProcess -gt 0) - { - ParameterValidationError -ErrorAction:Stop -ParameterName:'TopScansPerPathPerProcess' -ParentParameterName:'TopPathsPerProcess' - } - } - - if (($TopFiles -eq 0) -and ($TopExtensions -eq 0) -and ($TopProcesses -eq 0) -and ($TopScans -eq 0) -and ($TopPaths -eq 0) -and (-not $Overview)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "At least one of the parameters 'TopFiles', 'TopPaths', 'TopExtensions', 'TopProcesses', 'TopScans' or 'Overview' must be present." - $category = [System.Management.Automation.ErrorCategory]::InvalidArgument - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'InvalidArgument',$category,$wprProfile - $psCmdlet.WriteError($errRecord) - return - } - - # Dependencies - [string]$PlatformPath = (Get-ItemProperty -Path:'HKLM:\Software\Microsoft\Windows Defender' -Name:'InstallLocation' -ErrorAction:Stop).InstallLocation - - # - # Test dependency presence - # - [string]$mpCmdRunCommand = "${PlatformPath}MpCmdRun.exe" - - if (-not (Get-Command $mpCmdRunCommand -ErrorAction:SilentlyContinue)) { - $ex = New-Object System.Management.Automation.ItemNotFoundException "Cannot find '$mpCmdRunCommand'." - $category = [System.Management.Automation.ErrorCategory]::ObjectNotFound - $errRecord = New-Object System.Management.Automation.ErrorRecord $ex,'PathNotFound',$category,$mpCmdRunCommand - $psCmdlet.WriteError($errRecord) - return - } - - # assemble report arguments - - [string[]]$reportArguments = @( - $PSBoundParameters.GetEnumerator() | - Where-Object { $_.Key.ToString().StartsWith("Top") -and ($_.Value -gt 0) } | - ForEach-Object { "-$($_.Key)"; "$($_.Value)"; } - ) - - [timespan]$MinDurationTimeSpan = ParseFriendlyDuration -FriendlyDuration:$MinDuration - - if ($MinDurationTimeSpan -gt [TimeSpan]::FromTicks(0)) - { - $reportArguments += @('-MinDuration', ($MinDurationTimeSpan.Ticks)) - } - - $MaxEndTime = PadUserDateTime -UserDateTime:$MaxEndTime - $MaxStartTime = PadUserDateTime -UserDateTime:$MaxStartTime - - $ret = ValidateTimeInterval -MinStartTime:$MinStartTime -MaxEndTime:$MaxEndTime -MaxStartTime:$MaxStartTime -MinEndTime:$MinEndTime - if ($false -eq $ret.status) - { - return - } - - [string[]]$intervalArguments = $ret.arguments - if (($null -ne $intervalArguments) -and ($intervalArguments.Length -gt 0)) - { - $reportArguments += $intervalArguments - } - - if ($Overview) - { - $reportArguments += "-Overview" - } - - $report = (& $mpCmdRunCommand -PerformanceReport -RecordingPath $Path @reportArguments) | Where-Object { -not [string]::IsNullOrEmpty($_) } | ConvertFrom-Json - - $result = [PSCustomObject]@{} - - if (-not $Raw) { - $result.PSTypeNames.Insert(0, 'MpPerformanceReport.Result') - } - - if ($TopFiles -gt 0) - { - $reportTopFiles = @(if ($null -ne $report.TopFiles) { @($report.TopFiles | ConvertTo-DefenderScannedFilePathStats -Raw:$Raw) } else { @() }) - $result | Add-Member -NotePropertyName:'TopFiles' -NotePropertyValue:$reportTopFiles - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.TopFiles) - } - } - - if ($TopPaths -gt 0) - { - $reportTopPaths = @(if ($null -ne $report.TopPaths) { @($report.TopPaths | ConvertTo-DefenderScannedPathsStats -Raw:$Raw) } else { @() }) - $result | Add-Member -NotePropertyName:'TopPaths' -NotePropertyValue:$reportTopPaths - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.TopPaths) - } - } - - if ($TopExtensions -gt 0) - { - $reportTopExtensions = @(if ($null -ne $report.TopExtensions) { @($report.TopExtensions | ConvertTo-DefenderScannedFileExtensionStats -Raw:$Raw) } else { @() }) - $result | Add-Member -NotePropertyName:'TopExtensions' -NotePropertyValue:$reportTopExtensions - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.TopExtensions) - } - } - - if ($TopProcesses -gt 0) - { - $reportTopProcesses = @(if ($null -ne $report.TopProcesses) { @($report.TopProcesses | ConvertTo-DefenderScannedProcessStats -Raw:$Raw) } else { @() }) - $result | Add-Member -NotePropertyName:'TopProcesses' -NotePropertyValue:$reportTopProcesses - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.TopProcesses) - } - } - - if ($TopScans -gt 0) - { - $reportTopScans = @(if ($null -ne $report.TopScans) { @($report.TopScans | ConvertTo-DefenderScanInfo -Raw:$Raw) } else { @() }) - $result | Add-Member -NotePropertyName:'TopScans' -NotePropertyValue:$reportTopScans - - if (-not $Raw) { - Add-DefenderCollectionType -CollectionRef:([ref]$result.TopScans) - } - } - - if ($Overview) - { - if ($null -ne $report.Overview) { - $reportOverview = $report.Overview | ConvertTo-DefenderScanOverview -Raw:$Raw - $result | Add-Member -NotePropertyName:'Overview' -NotePropertyValue:$reportOverview - - if (-not $Raw) { - $result.Overview.PSTypeNames.Insert(0, 'MpPerformanceReport.Overview') - } - } - } - - $result -} - -$exportModuleMemberParam = @{ - Function = @( - 'New-MpPerformanceRecording' - 'Get-MpPerformanceReport' - ) -} - -Export-ModuleMember @exportModuleMemberParam - -# SIG # Begin signature block -# MIImGwYJKoZIhvcNAQcCoIImDDCCJggCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCABOtUhuRLDSJsH -# 5LjfiBWymKYbjYNumRKF78V/LI3Gd6CCC1MwggTgMIIDyKADAgECAhMzAAALjqZI -# W414yEj+AAAAAAuOMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBXaW5kb3dzIFBD -# QSAyMDEwMB4XDTI0MDgyMjIxMzIwNVoXDTI1MDcwNDIxMzIwNVowcDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEaMBgGA1UEAxMRTWljcm9zb2Z0 -# IFdpbmRvd3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrxl8EJfzA -# QclDL4nqroqJh8zn/bvwptnZ6a99GFLJ5GuBZxQloIPF+ZM+9D1QnH/xeQsnuh4e -# CtIztigcnWawfvQAgpsgS47ROqxM5IsMhoGdbmahsAO9ld46iG/7RsKvfDvFCyip -# SnaKR/Lz4YJl4diHhpSIAviRMkWBPoAXDZlcwIuGk0AeAuL8mxVYgBPuWUsq+MH5 -# HL6ut/M+uzFpfv3atwbdECzGoXERLeHzqtOnpKLkqq+43TJLLWFnz5arpMs0MbjJ -# o+40U3iarvp3hMIiM5O06++zz+PMoBO67yKqu9AcdQwJZ+jZ640qkYGDZeVJHNC4 -# 55PXywdmGqOtAgMBAAGjggFoMIIBZDAfBgNVHSUEGDAWBgorBgEEAYI3CgMGBggr -# BgEFBQcDAzAdBgNVHQ4EFgQU+rpJaEO0Uj4j7pcTCs301fdFu/gwRQYDVR0RBD4w -# PKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEWMBQGA1UEBRMN -# MjMwMDI4KzUwMjc5NzAfBgNVHSMEGDAWgBTRT6mKBwjO9CQYmOUA//PWeR03vDBT -# BgNVHR8ETDBKMEigRqBEhkJodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNXaW5QQ0FfMjAxMC0wNy0wNi5jcmwwVwYIKwYBBQUHAQEE -# SzBJMEcGCCsGAQUFBzAChjtodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl -# cnRzL01pY1dpblBDQV8yMDEwLTA3LTA2LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG -# SIb3DQEBCwUAA4IBAQBsZbDNo5NyFwckNKY3ZusiPl4vHyU0CzJKbaV1lLdwxU// -# ePCQRH0efL+g1HMnT0+3tYo3S+jcYYjbtVPhLT0V1jSIeYK5Raxwqm1Csb7B+zta -# Qt933J/50c+3IiSeWXrNhi4r9Q7/h6f8Fu+TpG0pG9XGF5LmMSQKL16GZTbdOT5R -# mqK5J/GW9+S20QDo5cMULRzoWvxRgYKbXIyQWQeUjIpXG4FdzLpPepPiybYpLztT -# X8Vpcu62J9k2nG6nth0ExLrX3YdfRIpaP+ALXD7qa7fEAuy8hV1mX5eYVJAVmvTu -# yyK779mXw0pqlIbCjbgRd7e0ohoIVzbEap3THr1RMIIGazCCBFOgAwIBAgIKYQxq -# GQAAAAAABDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh -# dGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzA2MjA0MDIzWhcNMjUwNzA2MjA1MDIz -# WjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQD -# ExpNaWNyb3NvZnQgV2luZG93cyBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQAD -# ggEPADCCAQoCggEBAMB5uzqx8A+EuK1kKnUWc9C7B/Y+DZ0U5LGfwciUsDh8H9Az -# VfW6I2b1LihIU8cWg7r1Uax+rOAmfw90/FmV3MnGovdScFosHZSrGb+vlX2vZqFv -# m2JubUu8LzVs3qRqY1pf+/MNTWHMCn4x62wK0E2XD/1/OEbmisdzaXZVaZZM5Njw -# NOu6sR/OKX7ET50TFasTG3JYYlZsioGjZHeYRmUpnYMUpUwIoIPXIx/zX99vLM/a -# FtgOcgQo2Gs++BOxfKIXeU9+3DrknXAna7/b/B7HB9jAvguTHijgc23SVOkoTL9r -# XZ//XTMSN5UlYTRqQst8nTq7iFnho0JtOlBbSNECAwEAAaOCAeMwggHfMBAGCSsG -# AQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTRT6mKBwjO9CQYmOUA//PWeR03vDAZBgkr -# BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -# AwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBN -# MEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0 -# cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoG -# CCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01p -# Y1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBnQYDVR0gBIGVMIGSMIGPBgkrBgEE -# AYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9Q -# S0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcA -# YQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZI -# hvcNAQELBQADggIBAC5Bpoa1Bm/wgIX6O8oX6cn65DnClHDDZJTD2FamkI7+5Jr0 -# bfVvjlONWqjzrttGbL5/HVRWGzwdccRRFVR+v+6llUIz/Q2QJCTj+dyWyvy4rL/0 -# wjlWuLvtc7MX3X6GUCOLViTKu6YdmocvJ4XnobYKnA0bjPMAYkG6SHSHgv1QyfSH -# KcMDqivfGil56BIkmobt0C7TQIH1B18zBlRdQLX3sWL9TUj3bkFHUhy7G8JXOqiZ -# VpPUxt4mqGB1hrvsYqbwHQRF3z6nhNFbRCNjJTZ3b65b3CLVFCNqQX/QQqbb7yV7 -# BOPSljdiBq/4Gw+Oszmau4n1NQblpFvDjJ43X1PRozf9pE/oGw5rduS4j7DC6v11 -# 9yxBt5yj4R4F/peSy39ZA22oTo1OgBfU1XL2VuRIn6MjugagwI7RiE+TIPJwX9hr -# cqMgSfx3DF3Fx+ECDzhCEA7bAq6aNx1QgCkepKfZxpolVf1Ayq1kEOgx+RJUeRry -# DtjWqx4z/gLnJm1hSY/xJcKLdJnf+ZMakBzu3ZQzDkJQ239Q+J9iguymghZ8Zrzs -# mbDBWF2osJphFJHRmS9J5D6Bmdbm78rj/T7u7AmGAwcNGw186/RayZXPhxIKXezF -# ApLNBZlyyn3xKhAYOOQxoyi05kzFUqOcasd9wHEJBA1w3gI/h+5WoezrtUyFMYIa -# HjCCGhoCAQEwgZAweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEjMCEGA1UEAxMaTWljcm9zb2Z0IFdpbmRvd3MgUENBIDIwMTACEzMAAAuOpkhb -# jXjISP4AAAAAC44wDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisG -# AQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcN -# AQkEMSIEIP1nRydeaI+1iJEMHgjg/lvzEqkxTM+0Vgz1fU+wYXo6MEIGCisGAQQB -# gjcCAQwxNDAyoBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1p -# Y3Jvc29mdC5jb20wDQYJKoZIhvcNAQEBBQAEggEAjI2LGBewNO0HMxBBEI15+iRe -# 1sx0dcBDsG00mCnkzIfWSUnKIigCoDdpTUTJBNo+lFpX/H6KXGPrJDRr+o7R67Lp -# FgtyI7SjU4vlSKNMiPkxzOXNP/6IJn2g74I6frSqmuN5cLUrp2UetAt7vop/Dqtz -# KGYDSQAU7uqXovUB0sg+55eo/vJ6UY7G18Cv5E9iGqdFifdJYE2oAJ7flEQdGvID -# 51Qezm83NfZZ+oif4xmn1LuH89vIc41zXVKnb8iG3zHYxMiq4WojI8mJOarGz3Sh -# tYRnLYa1mvm1bwuMLRscrnHvfJN81r2fTYFGoUzoGhof4tPl/cQu4kPa8hoXGqGC -# F60wghepBgorBgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgED -# MQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIB -# AQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCB7XA5tbZ0vYXbRJzULHHo8 -# Gt97peckynvmCFR00V8PWwIGZ7+2XoQYGBMyMDI1MDMxMjA1MDQwMS44MzNaMASA -# AgH0oIHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgEC -# AhMzAAACAdFFWZgQzEJPAAEAAAIBMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYT -# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD -# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBU -# aW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMloXDTI1MTAyMjE4MzEy -# MlowgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNV -# BAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UE -# CxMeblNoaWVsZCBUU1MgRVNOOjU1MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNy -# b3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -# MIICCgKCAgEAtWrf+HzDu7sk50y5YHheCIJG0uxRSFFcHNek+Td9ZmyJj20EEjaU -# 8JDJu5pWc4pPAsBI38NEAJ1b+KBnlStqU8uvXF4qnEShDdi8nPsZZQsTZDKWAgUM -# 2iZTOiWIuZcFs5ZC8/+GlrVLM5h1Y9nfMh5B4DnUQOXMremAT9MkvUhg3uaYgmqL -# lmYyODmba4lXZBu104SLAFsXOfl/TLhpToT46y7lI9sbI9uq3/Aerh3aPi2knHvE -# EazilXeooXNLCwdu+Is6o8kQLouUn3KwUQm0b7aUtsv1X/OgPmsOJi6yN3LYWyHI -# SvrNuIrJ4iYNgHdBBumQYK8LjZmQaTKFacxhmXJ0q2gzaIfxF2yIwM+V9sQqkHkg -# /Q+iSDNpMr6mr/OwknOEIjI0g6ZMOymivpChzDNoPz9hkK3gVHZKW7NV8+UBXN4G -# 0aBX69fKUbxBBLyk2cC+PhOoUjkl6UC8/c0huqj5xX8m+YVIk81e7t6I+V/E4yXR -# eeZgr0FhYqNpvTjGcaO2WrkP5XmsYS7IvMPIf4DCyIJUZaqoBMToAJJHGRe+DPqC -# Hg6bmGPm97MrOWv16/Co6S9cQDkXp9vMSSRQWXy4KtJhZfmuDz2vr1jw4NeixwuI -# DGw1mtV/TdSI+vpLJfUiLl/b9w/tJB92BALQT8e1YH8NphdOo1xCwkcCAwEAAaOC -# AUkwggFFMB0GA1UdDgQWBBSwcq9blqLoPPiVrym9mFmFWbyyUjAfBgNVHSMEGDAW -# gBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0 -# YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUF -# BzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jv -# c29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8E -# AjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkq -# hkiG9w0BAQsFAAOCAgEAOjQAyz0cVztTFGqXX5JLRxFK/O/oMe55uDqEC8Vd1gbc -# M28KBUPgvUIPXm/vdDN2IVBkWHmwCp4AIcy4dZtkuUmd0fnu6aT9Mvo1ndsLp2YJ -# cMoFLEt3TtriLaO+i4Grv0ZULtWXUPAW/Mn5Scjgn0xZduGPBD/Xs3J7+get9+8Z -# vBipsg/N7poimYOVsHxLcem7V5XdMNsytTm/uComhM/wgR5KlDYTVNAXBxcSKMeJ -# aiD3V1+HhNkVliMl5VOP+nw5xWF55u9h6eF2G7eBPqT+qSFQ+rQCQdIrN0yG1QN9 -# PJroguK+FJQJdQzdfD3RWVsciBygbYaZlT1cGJI1IyQ74DQ0UBdTpfeGsyrEQ9PI -# 8QyqVLqb2q7LtI6DJMNphYu+jr//0spr1UVvyDPtuRnbGQRNi1COwJcj9OYmlkFg -# KNeCfbDT7U3uEOvWomekX60Y/m5utRcUPVeAPdhkB+DxDaev3J1ywDNdyu911nAV -# PgRkyKgMK3USLG37EdlatDk8FyuCrx4tiHyqHO3wE6xPw32Q8e/vmuQPoBZuX3qU -# eoFIsyZEenHq2ScMunhcqW32SUVAi5oZ4Z3nf7dAgNau21NEPwgW+2wkrNqDg7Hp -# 8yHyoOKbgEBu6REQbvSfZ5Kh4PV+S2gxf2uq6GoYDnlqABOMYwz309ISi0bPMh8w -# ggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUA -# MIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQD -# EylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0y -# MTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0 -# ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveV -# U3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTI -# cVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36M -# EBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHI -# NSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxP -# LOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2l -# IH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDy -# t0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymei -# XtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1 -# GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgV -# GD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQB -# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTu -# MB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsG -# AQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUH -# AwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD -# VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv -# cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB -# BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j -# ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQAD -# ggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/ -# 2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvono -# aeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRW -# qveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8Atq -# gcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7 -# hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkct -# wRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu -# +yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FB -# SX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/ -# Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ -# 8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEw -# ggEBoYHZpIHWMIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ -# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -# MS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx -# JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo1NTFBLTA1RTAtRDk0NzElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA -# 1+26cR/yH100DiNFGWhuAv2rYBqggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEG -# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj -# cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt -# cCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOt7V08wIhgPMjAyNTAzMTIwMDQz -# NTlaGA8yMDI1MDMxMzAwNDM1OVowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA63tX -# TwIBADAHAgEAAgIkzjAHAgEAAgISezAKAgUA63yozwIBADA2BgorBgEEAYRZCgQC -# MSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqG -# SIb3DQEBCwUAA4IBAQBgYY3roZdzNuxHIWXhLL+Gsirar0FWd87BAyGArtGKIp3c -# 2LUitjXEvZHJVaLdW0uWyhQF/X602dhGXVewjB6atjnw7xUU+2Q7EGCwKKDmeBHV -# CleToP5mbepnzOiwNwDLk3IXDLcY5BovU0uC3rsxNqqEP38TpHaC7F7iuIEPWgvw -# spqUj4pNzZl+lQNDZs2VWvPJWliJkEEM0q1yL3aGFbvjVntStN/b5xB3Sc7+FTIk -# FYjogUmwaX99WffaQOEedFy6Ab0GxHnx34fQh2rmQ9FCdXUpVQgxt/eYFTWDBeaz -# Mu4Ui1mkwDcRpu3oD9sfaML30OVnMxVwl1CJylDDMYIEDTCCBAkCAQEwgZMwfDEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWlj -# cm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIB0UVZmBDMQk8AAQAAAgEw -# DQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAv -# BgkqhkiG9w0BCQQxIgQgcZh6+rjlPCra7Qi5xf+gF2cXhKH6zCiIlI46hjmrzFow -# gfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCBYa7I6TJQRcmx0HaSTWZdJgowd -# rl9+Zrr0pIdqHtc4IzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX -# YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg -# Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy -# MDEwAhMzAAACAdFFWZgQzEJPAAEAAAIBMCIEIPlERA11JlrxgZHhLSdtu1j7TQ02 -# veZ+JH4gXwxwpT8gMA0GCSqGSIb3DQEBCwUABIICAH95iFbRUn2vbIas/MdpGFkV -# tQ8vY+ii/JZEP/5Ivs7s8pAUDTY+40HUEVJHudLyOCfI/H3hpQASrjdA8xzHyqgU -# sX+bMPvSqKUMm0L98NPSYyPR3kVnuZMH2PklqdmCzd9SzaeK3/o+qPgekp9yR3jR -# crZVknbJCi+Vz8DhqePMYhLpaG/t/8u+Tj8+O5rx4t2igXD1IMEZZ25NHYgkCsJM -# wdxnvMlGE9h968q4nIksyZ8V1CSCEK7Xf/cUSajZL0/MyHxw1DVVMyyLs9bAngDW -# LR2RmYI5smZWKPU4D9unCkpgVus0ZcyjCRYkttTHzcoEQWTtjAMymXAfl+2ZcHHi -# APyH+w1FrpilgDHVnXyNNeenr7A4+ytQFQ6c0/DU9Kv7KJ/X1tN0Q+HwnzW8XAW8 -# bxYcoBZ4x65urKbZioEmSp21FsRCFEqL+CBpo79jSq1LOLbY0gl32Xml/D/Ix+Pp -# zEM68KigMDMI5XpRSAaIXkOJ6x1Xk8oiKsXap9z9qZrx6djO1SpBevVjAu2N+osC -# JQm2wCk4ZtefzMQsNSK1FfeeSbeO8UG6dEcNnv96LcE52+O7/lNV+XTfDhlS2m9/ -# gglLNXlhZZzxmXhmr/Bf/Q5V9gEnqRx/RBIEYDQCM9HK8IwM8Vol+xp+nmr+STm6 -# Vd3F7h/aQ3aBi10l1ARJ -# SIG # End signature block diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.wprp b/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.wprp deleted file mode 100644 index 244520b..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceRecording.wprp +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceReport.Format.ps1xml b/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceReport.Format.ps1xml deleted file mode 100644 index ffc1222..0000000 --- a/newton-cn/bin/v1.0/Modules/ConfigDefenderPerformance/MSFT_MpPerformanceReport.Format.ps1xml +++ /dev/null @@ -1,1773 +0,0 @@ - - - - - default - - MpPerformanceReport.Result - Deserialized.MpPerformanceReport.Result - - - - - - - Overview - - ($_ | gm -Name:'Overview' -MemberType:NoteProperty).Count -gt 0 - - - - - - - Overview - - ======== - - - - - - - - - ($_ | fl | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - TopFiles - - ($_ | gm -Name:'TopFiles' -MemberType:NoteProperty).Count -gt 0 - - - - - - - TopFiles - - ======== - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - ($_ | fc | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - TopExtensions - - ($_ | gm -Name:'TopExtensions' -MemberType:NoteProperty).Count -gt 0 - - - - - - - TopExtensions - - ============= - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - ($_ | fc | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - TopProcesses - - ($_ | gm -Name:'TopProcesses' -MemberType:NoteProperty).Count -gt 0 - - - - - - - TopProcesses - - ============ - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - ($_ | fc | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - TopPaths - - ($_ | gm -Name:'TopPaths' -MemberType:NoteProperty).Count -gt 0 - - - - - - - TopPaths - - ======== - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - ($_ | fc | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - Folder - - ($_ | gm -Name:'Folder' -MemberType:NoteProperty).Count -gt 0 - - - - - - - Folder - - ====== - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - ($_ | fc | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - TopScans - - ($_ | gm -Name:'TopScans' -MemberType:NoteProperty).Count -gt 0 - - - - - - - TopScans - - ======== - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - default - - MpPerformanceReport.Result - Deserialized.MpPerformanceReport.Result - - - - - - - - - $null -ne $_.Overview - - ($_.Overview | fl | Out-String).TrimStart() - - - - - $null -ne $_.TopFiles - - ($_.TopFiles | fl | Out-String).TrimStart() - - - - - $null -ne $_.TopExtensions - - ($_.TopExtensions | fl | Out-String).TrimStart() - - - - - $null -ne $_.TopPaths - - ($_.TopPaths | fl | Out-String).TrimStart() - - - - - $null -ne $_.TopProcesses - - ($_.TopProcesses | fl | Out-String).TrimStart() - - - - - $null -ne $_.TopScans - - ($_.TopScans | fl | Out-String).TrimStart() - - - - - - - - - default - - MpPerformanceReport.Result - Deserialized.MpPerformanceReport.Result - - - - - - - ForEach($sectionName in @('TopFiles', 'TopExtensions', 'TopProcesses', 'TopScans', 'TopPaths')) { - if ($null -ne $_.$sectionName) { - $sectionName - } - } - - - - - - - - - default - - MpPerformanceReport.Result - Deserialized.MpPerformanceReport.Result - - - - - - - - - 13 - - - - - - - - - - - - - - - - - - - - ($_.Overview | fl | Out-String).TrimStart() - - - ($_.TopExtensions | fw -Column:1 | Out-String).TrimStart() - - - ($_.TopProcesses | fw -Column:1 | Out-String).TrimStart() - - - ($_.TopFiles | fw -Column:1 | Out-String).TrimStart() - - - ($_.TopScans | fw -Column:1 | Out-String).TrimStart() - - - ($_.TopPaths | fw -Column:1 | Out-String).TrimStart() - - - - - - - - - default - - MpPerformanceReport.ScannedFilePathStats - Deserialized.MpPerformanceReport.ScannedFilePathStats - MpPerformanceReport.ScannedFileExtensionStats - Deserialized.MpPerformanceReport.ScannedFileExtensionStats - MpPerformanceReport.ScannedPathStats - Deserialized.MpPerformanceReport.ScannedPathStats - MpPerformanceReport.ScannedProcessStats - Deserialized.MpPerformanceReport.ScannedProcessStats - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - 4 - - - Files - - ($_ | gm -Name:'Files' -MemberType:NoteProperty).Count -eq 1 - - - - - - Files: - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - 4 - - - Scans - - ($_ | gm -Name:'Scans' -MemberType:NoteProperty).Count -eq 1 - - - - - - Scans: - - - - - $properties = 'ScanType',@{Name='Duration'; Expression={$_.Duration}; Alignment='Right'},'Reason','SkipReason' - - if (($_ | gm -Name:'ProcessName' -MemberType:NoteProperty).Count -eq 1) { - $properties += 'ProcessName' - } - - if (($_ | gm -Name:'ProcessPath' -MemberType:NoteProperty).Count -eq 1) { - $properties += 'ProcessPath' - } - - ($_ | ft -Property:$properties | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - Extensions - - ($_ | gm -Name:'Extensions' -MemberType:NoteProperty).Count -eq 1 - - - - - - Extensions: - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - 4 - - - Scans - - ($_ | gm -Name:'Scans' -MemberType:NoteProperty).Count -eq 1 - - - - - - Scans: - - - - - $properties = 'ScanType',@{Name='Duration'; Expression={$_.Duration}; Alignment='Right'},'Reason','SkipReason','ProcessName','Path' - ($_ | ft -Property:$properties | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - Folder - - ($_ | gm -Name:'Folder' -MemberType:NoteProperty).Count -eq 1 - - - - - - Folder: - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - 4 - - - Scans - - ($_ | gm -Name:'Scans' -MemberType:NoteProperty).Count -eq 1 - - - - - - Scans: - - - - - $properties = 'ScanType',@{Name='Duration'; Expression={$_.Duration}; Alignment='Right'},'Reason','SkipReason','ProcessName','Path' - ($_ | ft -Property:$properties | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - 4 - - - Folder - - ($_ | gm -Name:'Folder' -MemberType:NoteProperty).Count -eq 1 - - - - - - Folder: - - - - - ($_ | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - Processes - - ($_ | gm -Name:'Processes' -MemberType:NoteProperty).Count -eq 1 - - - - - - Processes: - - - - - - - - MpPerformanceReport.NestedCollection - Deserialized.MpPerformanceReport.NestedCollection - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - 4 - - - Scans - - ($_ | gm -Name:'Scans' -MemberType:NoteProperty).Count -eq 1 - - - - - - Scans: - - - - - $properties = 'ScanType',@{Name='Duration'; Expression={$_.Duration}; Alignment='Right'},'Reason','SkipReason','ProcessName','Path' - ($_ | ft -Property:$properties | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - Scans - - ($_ | gm -Name:'Scans' -MemberType:NoteProperty).Count -eq 1 - - - - - - Scans: - - - - - $properties = 'ScanType',@{Name='Duration'; Expression={$_.Duration}; Alignment='Right'},'Reason','SkipReason' - - if (($_ | gm -Name:'Comments' -MemberType:NoteProperty).Count -eq 1) { - $properties += @{Name='Comments'; Expression={$_.Comments.Count}; Alignment='Right'} - } - - if (($_ | gm -Name:'ProcessName' -MemberType:NoteProperty).Count -eq 1) { - $properties += 'ProcessName' - } - - if (($_ | gm -Name:'Path' -MemberType:NoteProperty).Count -eq 1) { - $properties += 'Path' - } - - ($_ | ft -Property:$properties | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - default - - MpPerformanceReport.ScanStats - Deserialized.MpPerformanceReport.ScanStats - - - - - - - - $null -ne $_.ProcessPath - - ProcessPath - - - - $null -ne $_.Path - - Path - - - - $null -ne $_.Extension - - Extension - - - Count - - - TotalDuration - - - MinDuration - - - AverageDuration - - - MaxDuration - - - MedianDuration - - - - - $null -ne $_.Extensions - - ($_.Extensions | fl | Out-String).Trim() - - - - - $null -ne $_.Files - - ($_.Files | fl | Out-String).Trim() - - - - - $null -ne $_.Processes - - ($_.Processes | fl | Out-String).Trim() - - - - - $null -ne $_.Scans - - ($_.Scans | fl | Out-String).Trim() - - - - - - - - - default - - MpPerformanceReport.ScannedFilePathStats - Deserialized.MpPerformanceReport.ScannedFilePathStats - - - - - Right - - - Right - - - Right - - - Right - - - Right - - - Right - - - - - - - - - Count - - - TotalDuration - - - MinDuration - - - AverageDuration - - - MaxDuration - - - MedianDuration - - - Path - - - - - - - - - default - - MpPerformanceReport.ScannedFileExtensionStats - Deserialized.MpPerformanceReport.ScannedFileExtensionStats - - - - - Right - - - Right - - - Right - - - Right - - - Right - - - Right - - - - - - - - - Count - - - TotalDuration - - - MinDuration - - - AverageDuration - - - MaxDuration - - - MedianDuration - - - Extension - - - - - - - - - default - - MpPerformanceReport.ScannedPathStats - Deserialized.MpPerformanceReport.ScannedPathStats - - - - - Right - - - Right - - - Right - - - Right - - - Right - - - Right - - - - - - - - - Count - - - TotalDuration - - - MinDuration - - - AverageDuration - - - MaxDuration - - - MedianDuration - - - Path - - - - - - - - - default - - MpPerformanceReport.ScannedProcessStats - Deserialized.MpPerformanceReport.ScannedProcessStats - - - - - Right - - - Right - - - Right - - - Right - - - Right - - - Right - - - - - - - - - Count - - - TotalDuration - - - MinDuration - - - AverageDuration - - - MaxDuration - - - MedianDuration - - - ProcessPath - - - - - - - - - default - - MpPerformanceReport.ScannedFilePathStats - Deserialized.MpPerformanceReport.ScannedFilePathStats - - - - - - Path - - - - - - - - default - - MpPerformanceReport.ScannedFileExtensionStats - Deserialized.MpPerformanceReport.ScannedFileExtensionStats - - - - - - Extension - - - - - - - - default - - MpPerformanceReport.ScannedPathStats - Deserialized.MpPerformanceReport.ScannedPathStats - - - - - - Path - - - - - - - - default - - MpPerformanceReport.ScannedProcessStats - Deserialized.MpPerformanceReport.ScannedProcessStats - - - - - - ProcessPath - - - - - - - - default - - MpPerformanceReport.ScanInfo - Deserialized.MpPerformanceReport.ScanInfo - - - - - - Right - - - - - - Right - - - - - - - - - - - - ScanType - - - Duration - - - Reason - - - SkipReason - - - $_.Comments.Count - - - ProcessName - - - Path - - - - - - - - - default - - MpPerformanceReport.ScanInfo - Deserialized.MpPerformanceReport.ScanInfo - - - - - - - ScanType - - - StartTime - - - EndTime - - - Duration - - - - ($null -ne $_.Reason) -and ($_.Reason.Length -gt 0) - - Reason - - - SkipReason - - - Path - - - - $null -ne $_.ProcessPath - - ProcessPath - - - - $null -ne $_.ProcessId - - ProcessId - - - - $null -ne $_.Image - - Image - - - - $null -ne $_.Comments - - - ($_.Comments | fl | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - default - - MpPerformanceReport.ScanInfo - Deserialized.MpPerformanceReport.ScanInfo - - - - - - Path - - - - - - - - default - - MpPerformanceReport.ScanInfo - Deserialized.MpPerformanceReport.ScanInfo - - - - - - - ($_ | ft | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - default - - MpPerformanceReport.Overview - Deserialized.MpPerformanceReport.Overview - - - - - - - ($_ | fl | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - default - - MpPerformanceReport.Overview - Deserialized.MpPerformanceReport.Overview - - - - - - - StartTime - - - EndTime - - - - ($null -ne $_.RealTimeScans) -and ($_.RealTimeScans -gt 0) - - RealTimeScans - - - - ($null -ne $_.OnDemandScans) -and ($_.OnDemandScans -gt 0) - - OnDemandScans - - - - ($null -ne $_.FileScans) -and ($_.FileScans -gt 0) - - FileScans - - - - ($null -ne $_.ProcessScans) -and ($_.ProcessScans -gt 0) - - ProcessScans - - - - ($null -ne $_.RealTimeScansDuration) -and ($_.RealTimeScansDuration -gt 0) - - RealTimeScansDuration - - - - ($null -ne $_.OnDemandScansDuration) -and ($_.OnDemandScansDuration -gt 0) - - OnDemandScansDuration - - - - ($null -ne $_.FileScansDuration) -and ($_.FileScansDuration -gt 0) - - FileScansDuration - - - - ($null -ne $_.ProcessScansDuration) -and ($_.ProcessScansDuration -gt 0) - - ProcessScansDuration - - - MaxScanDuration - - - MedianScanDuration - - - - ($null -ne $_.SkipScanCount) -and ($_.SkipScanCount -gt 0) - - SkipScanCount - - - - ($null -ne $_.PerfHints) -and ($_.PerfHints.Count -gt 0) - - - ($_.PerfHints | fl | Out-String).Trim("`r`n".ToCharArray()) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/Defender.psd1 b/newton-cn/bin/v1.0/Modules/Defender/Defender.psd1 deleted file mode 100644 index 50ea7c5..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/Defender.psd1 +++ /dev/null @@ -1,221 +0,0 @@ - -@{ - GUID = 'C46BE3DC-30A9-452F-A5FD-4BF9CA87A854' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="© Microsoft Corporation. All rights reserved." - ModuleVersion = '1.0' - NestedModules = @( 'MSFT_MpComputerStatus.cdxml', - 'MSFT_MpPreference.cdxml', - 'MSFT_MpThreat.cdxml', - 'MSFT_MpThreatCatalog.cdxml', - 'MSFT_MpThreatDetection.cdxml', - 'MSFT_MpScan.cdxml', - 'MSFT_MpSignature.cdxml', - 'MSFT_MpWDOScan.cdxml') - - - AliasesToExport = @() - FunctionsToExport = @( 'Get-MpPreference', - 'Set-MpPreference', - 'Add-MpPreference', - 'Remove-MpPreference', - 'Get-MpComputerStatus', - 'Get-MpThreat', - 'Get-MpThreatCatalog', - 'Get-MpThreatDetection', - 'Start-MpScan', - 'Update-MpSignature', - 'Remove-MpThreat', - 'Start-MpWDOScan') - - PowerShellVersion = '5.1' - HelpInfoUri="https://go.microsoft.com/fwlink/?linkid=390762" - CompatiblePSEditions = @('Desktop', 'Core') -} - -# SIG # Begin signature block -# MIIiMwYJKoZIhvcNAQcCoIIiJDCCIiACAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDUbZuRH+aG/7FW -# 9ezsmK3ZGa31rJ8d50nbQ/Xy2TfvNqCCC14wggTrMIID06ADAgECAhMzAAAGjjGX -# Mb+0zHDBAAAAAAaOMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBXaW5kb3dzIFBD -# QSAyMDEwMB4XDTE5MDUwMjIwMzUyN1oXDTIwMDUwMjIwMzUyN1owcDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEaMBgGA1UEAxMRTWljcm9zb2Z0 -# IFdpbmRvd3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsvVYdcqx5 -# CYVMFPb/2EsJUc9P5loIBWf7HhHqFwFFQ0Fc7Alzdm/06Myx64qpVjCOwgmIA9x6 -# 2634vpYikMt46HFt5539uCkm3/HfX7oYDIIzqxX6EqBd8GLMRe09JMpg57fL0BIl -# do5l/LG60xFsnvBQNJ4mqi4C3TXvmV/vFqRruCXqP6FUejQlhGLEwbMNvgIWYJiK -# Tg16g/rdhlH25JL2jdrIvOrhmLngx3/1Vlh6+ypItfG3ml2mYK4CQYc04sZimz+B -# WzpM8TjP0DvVDddSGSry3sTQpDxZPgQQqTQmyOxTxHfhrUMzfL5XN4T6SpEGret/ -# qDJOT/80eN3DAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEEAYI3CgMGBggr -# BgEFBQcDAzAdBgNVHQ4EFgQUnC909vAOepLyCEG0Wl1Rzz+QiHMwUAYDVR0RBEkw -# R6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNv -# MRYwFAYDVQQFEw0yMzAwMjgrNDU0MTM4MB8GA1UdIwQYMBaAFNFPqYoHCM70JBiY -# 5QD/89Z5HTe8MFMGA1UdHwRMMEowSKBGoESGQmh0dHA6Ly9jcmwubWljcm9zb2Z0 -# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1dpblBDQV8yMDEwLTA3LTA2LmNybDBX -# BggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKGO2h0dHA6Ly93d3cubWljcm9zb2Z0 -# LmNvbS9wa2kvY2VydHMvTWljV2luUENBXzIwMTAtMDctMDYuY3J0MAwGA1UdEwEB -# /wQCMAAwDQYJKoZIhvcNAQELBQADggEBAFz4krQX84TW3RbjHZj+QkVVwkvT6J46 -# F/s8HuNVxt/gfRHfvFLPIwU4VsDYbBmYv0Vy3hJ1/Eg1fdSgXMRNLW6kPT7bLx5z -# ucCx6JBgLYBDSq0auMm5liQrATrPEM0PoBDqMpE0zsqdQ/C2P8UlkKLNhUS/qD0f -# 6OmLwTp9spa+Y4CL+C1gT1knV4Olku5X5ZoCyWXs6k7D0dltiO4nZjq7eRne53Kr -# +Eo9ocfnUjDalgHpFWOkdwx+cSXpfvh2cI1T0Qug9eS5VQ1j+iLRPWEKhbljly/M -# UWcVFCv+gqGphEkHsBjyKs0TZ4HMfC4n9DonS04Hn+/BskGtHJE+leMwggZrMIIE -# U6ADAgECAgphDGoZAAAAAAAEMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9v -# dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDYyMDQwMjNaFw0y -# NTA3MDYyMDUwMjNaMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xIzAhBgNVBAMTGk1pY3Jvc29mdCBXaW5kb3dzIFBDQSAyMDEwMIIBIjANBgkq -# hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwHm7OrHwD4S4rWQqdRZz0LsH9j4NnRTk -# sZ/ByJSwOHwf0DNV9bojZvUuKEhTxxaDuvVRrH6s4CZ/D3T8WZXcycai91JwWiwd -# lKsZv6+Vfa9moW+bYm5tS7wvNWzepGpjWl/78w1NYcwKfjHrbArQTZcP/X84RuaK -# x3NpdlVplkzk2PA067qxH84pfsRPnRMVqxMbclhiVmyKgaNkd5hGZSmdgxSlTAig -# g9cjH/Nf328sz9oW2A5yBCjYaz74E7F8ohd5T37cOuSdcCdrv9v8HscH2MC+C5Me -# KOBzbdJU6ShMv2tdn/9dMxI3lSVhNGpCy3ydOruIWeGjQm06UFtI0QIDAQABo4IB -# 4zCCAd8wEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNFPqYoHCM70JBiY5QD/ -# 89Z5HTe8MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP -# BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjE -# MFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kv -# Y3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEF -# BQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w -# a2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGdBgNVHSAEgZUw -# gZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNy -# b3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0 -# HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0 -# AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEALkGmhrUGb/CAhfo7yhfpyfrkOcKUcMNk -# lMPYVqaQjv7kmvRt9W+OU41aqPOu20Zsvn8dVFYbPB1xxFEVVH6/7qWVQjP9DZAk -# JOP53JbK/Lisv/TCOVa4u+1zsxfdfoZQI4tWJMq7ph2ahy8nheehtgqcDRuM8wBi -# QbpIdIeC/VDJ9IcpwwOqK98aKXnoEiSahu3QLtNAgfUHXzMGVF1AtfexYv1NSPdu -# QUdSHLsbwlc6qJlWk9TG3iaoYHWGu+xipvAdBEXfPqeE0VtEI2MlNndvrlvcItUU -# I2pBf9BCptvvJXsE49KWN2IGr/gbD46zOZq7ifU1BuWkW8OMnjdfU9GjN/2kT+gb -# Dmt25LiPsMLq/XX3LEG3nKPhHgX+l5LLf1kDbahOjU6AF9TVcvZW5EifoyO6BqDA -# jtGIT5Mg8nBf2GtyoyBJ/HcMXcXH4QIPOEIQDtsCrpo3HVCAKR6kp9nGmiVV/UDK -# rWQQ6DH5ElR5GvIO2NarHjP+AucmbWFJj/Elwot0md/5kxqQHO7dlDMOQlDbf1D4 -# n2KC7KaCFnxmvOyZsMFYXaiwmmEUkdGZL0nkPoGZ1ubvyuP9Pu7sCYYDBw0bDXzr -# 9FrJlc+HEgpd7MUCks0FmXLKffEqEBg45DGjKLTmTMVSo5xqx33AcQkEDXDeAj+H -# 7lah7Ou1TIUxghYrMIIWJwIBATCBkDB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK -# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 -# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgV2luZG93cyBQQ0EgMjAx -# MAITMwAABo4xlzG/tMxwwQAAAAAGjjANBglghkgBZQMEAgEFAKCBrjAZBgkqhkiG -# 9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB -# FTAvBgkqhkiG9w0BCQQxIgQgqArPjADquL3us4fMnB/bsIuUMLm3ByQyJDbiEevp -# iwowQgYKKwYBBAGCNwIBDDE0MDKgFIASAE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0 -# dHA6Ly93d3cubWljcm9zb2Z0LmNvbTANBgkqhkiG9w0BAQEFAASCAQB1jByJbzaz -# oKR0xnnzkHGYsLSpOB+RHzoeuoqL6ApE6NwOjqbo2jnyCB087rmnGu9kzTRbmABY -# kQqOC6Zuc0aLat9cTnW4YkKYMiQe63dj24cr3VvVZOSpydsyPLuAH488brp7Ywwx -# UxKiU+nnVZ/9AHLT1Rk4KGAxH7GwkmbresWhYuLHX6DwURjD/cSPQiUDagLRCJyd -# cMNBuWNd8EyfCLmAimlbeewczksWd4v79AAq+8hVaVtG1Hk2aM3sWMTiXTDFkCHy -# XFPXJi/vhFJCtsn6ZvsLHfKLVLUdV4cLiVq6QbdYZXWciOdRzZhcDTgYybrXQ5X5 -# bDFw+Nnk11+qoYITujCCE7YGCisGAQQBgjcDAwExghOmMIITogYJKoZIhvcNAQcC -# oIITkzCCE48CAQMxDzANBglghkgBZQMEAgEFADCCAVgGCyqGSIb3DQEJEAEEoIIB -# RwSCAUMwggE/AgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIHlT+9kz -# AlxjMg5+TwvD98601ORheoJ647W22XKMh0vNAgZdiN620kUYEzIwMTkwOTI1MDIw -# NDQ0LjY2N1owBwIBAYACAfSggdSkgdEwgc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv -# ZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 -# ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNTI4LTM3NzctOEE3 -# NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCDyIwggT1 -# MIID3aADAgECAhMzAAABApFjXMW0Wbk8AAAAAAECMA0GCSqGSIb3DQEBCwUAMHwx -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p -# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTE5MDkwNjIwNDExNloXDTIw -# MTIwNDIwNDExNlowgc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYw -# JAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNTI4LTM3NzctOEE3NjElMCMGA1UEAxMc -# TWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCASIwDQYJKoZIhvcNAQEBBQAD -# ggEPADCCAQoCggEBAMR9cB7FDTMrBI8h/TzUcyyH/WMnyW+TxPx308rF22K65K6d -# 0Cg/VQyr3xtoT+ir0MEhZ/hvXY5sO8F4HSu2frknt30PYRTQW0I1gzgNc7Tggbcx -# fY4JcXStqM0/3NGZusiKKDl8UvFV85irGYuiP/b36nqe6T5zk1gVIGHx5nFIdfPy -# HjsnoWX6gOxfqIDavfFeb/Ak7lKqZAHUgdAZU08KCYkVKYLtZbaRyQ2W1/KA7cPf -# cT17u+r6dJHZNfMqnCWriLZz9sTdkpTnQgvBr6LdLJ8b0e24taMX98ySqyenc1bB -# foa49rasKev/Ao17wc3sTO1POEkJQzOib6OwiNcCAwEAAaOCARswggEXMB0GA1Ud -# DgQWBBQ/AgaO19V67EZWg1gyCfv3uVC1tjAfBgNVHSMEGDAWgBTVYzpcijGQ80N7 -# fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m -# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNUaW1TdGFQQ0FfMjAxMC0wNy0wMS5j -# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNydDAM -# BgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUA -# A4IBAQCdMoMxXiGN6lYPaFv/uIVhdPr50PRE0H+4jZwUEOrTU8vJLF7ARizMeK/Z -# mxczuJPQhm7KSZBJXp+FmrX5jRE+gD7+gkPlTaRTiy+A/3jVOFJiPChh17Zxz/fS -# qtbKlejkG7LJv4Ptg/1u7qVI3bNGge85BkDt0xlTUsK8VxA2zGQSq4JfkF5TSPCG -# HQjmKdgJTfiZadCWQ2j/K5W0QAzPxNhrj3QetJp9Dqlr04EiV1IvZNAhY00TUByB -# GGhTlEclYTCzhGG7Agv2+qGkOv1tmeRjqLCETuF3/+WQWjxEzHfjMRsbDfhrcuAl -# AXZMrJktBr+87FwXNzt/81FwkOOkMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAAAjAN -# BgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 -# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh -# dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y -# aXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv -# ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -# AQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2 -# tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2TrNZz -# MFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFhE24o -# xhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5n -# f/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn9Nxk -# vaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQBgjcV -# AQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3 -# FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAf -# BgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBH -# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF -# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0Nl -# ckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3 -# LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kv -# ZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBs -# AF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcN -# AQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20ZMLPC -# xWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5 -# Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+THzvbK -# egBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplm -# kIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjYlPTG -# pQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGn -# Ecua2A5HmoDF0M2n0O99g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd4 -# 6PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1V -# mXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5Kpqj -# EWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czmTfsN -# v11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSoYIDsDCC -# ApgCAQEwgf6hgdSkgdEwgc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNv -# MSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNTI4LTM3NzctOEE3NjElMCMGA1UE -# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIlCgEBMAkGBSsOAwIaBQAD -# FQAX6b/thBTl/jMeKcc4lhOUcT39r6CB3jCB26SB2DCB1TELMAkGA1UEBhMCVVMx -# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT -# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJh -# dGlvbnMgUHVlcnRvIFJpY28xJzAlBgNVBAsTHm5DaXBoZXIgTlRTIEVTTjo0REU5 -# LTBDNUUtM0UwOTErMCkGA1UEAxMiTWljcm9zb2Z0IFRpbWUgU291cmNlIE1hc3Rl -# ciBDbG9jazANBgkqhkiG9w0BAQUFAAIFAOE0jQowIhgPMjAxOTA5MjQyMDM5Mzha -# GA8yMDE5MDkyNTIwMzkzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA4TSNCgIB -# ADAKAgEAAgIjIQIB/zAHAgEAAgIavTAKAgUA4TXeigIBADA2BgorBgEEAYRZCgQC -# MSgwJjAMBgorBgEEAYRZCgMBoAowCAIBAAIDFuNgoQowCAIBAAIDB6EgMA0GCSqG -# SIb3DQEBBQUAA4IBAQBrASVU9pdcR4F7/4tTy4Ua1pgXaHZeS+WxCk/Y27lXPjX3 -# AXc10+sWzfY399sHeIxloGNPGE2dAbreedpWNUOdASpH4NcmdBIV9Lw+rzINRfDk -# kXnmuMTBCNXUBheACk5PMBJkFmIb3pzS1ltL0VrBjIqrhEHcAODb084kqkowqnLy -# pXjqbqXhtgtCUYb4R3YW4UHh2fELgND4b137hiif1uYPml2eYJF3NkWEx+Yy1bnO -# BoO1HGGOVVkYl0haK9KYO477Aat/W3RXLCi9ZWvUF1zzIzmgEGpmg0IJ0+gc4O/u -# qL4fjQ+v7dr4XZGprDk4K/vnHJuXP6Zx+V9AQYt5MYIC9TCCAvECAQEwgZMwfDEL -# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWlj -# cm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAECkWNcxbRZuTwAAAAAAQIw -# DQYJYIZIAWUDBAIBBQCgggEyMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAv -# BgkqhkiG9w0BCQQxIgQgmh0X5htwm7cgRCt/4kIReiD7scc2/3H2LKoBpDH4A6Mw -# geIGCyqGSIb3DQEJEAIMMYHSMIHPMIHMMIGxBBQX6b/thBTl/jMeKcc4lhOUcT39 -# rzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw -# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x -# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABApFj -# XMW0Wbk8AAAAAAECMBYEFE6aCa5er+HPJ0ZM96o0ARtMskdiMA0GCSqGSIb3DQEB -# CwUABIIBADdGN5qukcEbkhbQS5sWxBsxHk9pqERW8f6V+ZHN2z562v9ZUmfLo4TX -# yAZtjbbsqSGTezz/YPziqebgXZP6Xo0akk372tSN7kVFtB9YEWru6/1hgYVHJ50r -# G6ti7OwweZRyUIOdJysSO2p3lzV06FiHQvLtsVtAt/BVFcVLh3i/hv+94Ew7D262 -# 5JiV28qyVTJRoJXChDT1q+tlR7ajbie3YyEKHuxLIa06IvbLayjsULRtTMfTXsS3 -# KCopbN0xpYvkLdWjyOrfc7XXs64UpyCvyQf468lVABcTOfKT/HLlEeIRn8bZZ+Oh -# okD3McQngz1Tv6rjlTi6OPhh4Z6ivFM= -# SIG # End signature block diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpComputerStatus.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpComputerStatus.cdxml deleted file mode 100644 index f2cb5ea..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpComputerStatus.cdxml +++ /dev/null @@ -1,202 +0,0 @@ - - - - 1.0 - MpComputerStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpPreference.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpPreference.cdxml deleted file mode 100644 index 51a31ca..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpPreference.cdxml +++ /dev/null @@ -1,1046 +0,0 @@ - - - - 1.0 - MpPreference - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Both - Incoming - Outcoming - - - - - - - - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - QuickScan - FullScan - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Everyday - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Disabled - Basic - Advanced - - - - - - - - - - AlwaysPrompt - SendSafeSamples - NeverSend - SendAllSamples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Disabled - Enabled - AuditMode - - - - - - - - - - Default - Moderate - High - HighPlus - ZeroTolerance - - - - - - - - - - - - - - - - - Disabled - Enabled - AuditMode - - - - - - - - - - Disabled - Enabled - AuditMode - BlockDiskModificationOnly - AuditDiskModificationOnly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpScan.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpScan.cdxml deleted file mode 100644 index 671f9db..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpScan.cdxml +++ /dev/null @@ -1,233 +0,0 @@ - - - - 1.0 - MpScan - - - - - - - - - - - - - - - - - - - - - - - - - FullScan - QuickScan - CustomScan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpSignature.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpSignature.cdxml deleted file mode 100644 index a97a324..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpSignature.cdxml +++ /dev/null @@ -1,230 +0,0 @@ - - - - 1.0 - MpSignature - - - - - - - - - - - - - - - - - - - - InternalDefinitionUpdateServer - MicrosoftUpdateServer - MMPC - FileShares - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreat.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreat.cdxml deleted file mode 100644 index ec817d9..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreat.cdxml +++ /dev/null @@ -1,218 +0,0 @@ - - - - 1.0 - MpThreat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatCatalog.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatCatalog.cdxml deleted file mode 100644 index b48296d..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatCatalog.cdxml +++ /dev/null @@ -1,205 +0,0 @@ - - - - 1.0 - MpThreatCatalog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatDetection.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatDetection.cdxml deleted file mode 100644 index 8e2d85c..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpThreatDetection.cdxml +++ /dev/null @@ -1,205 +0,0 @@ - - - - 1.0 - MpThreatDetection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpWDOScan.cdxml b/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpWDOScan.cdxml deleted file mode 100644 index 6955cad..0000000 --- a/newton-cn/bin/v1.0/Modules/Defender/MSFT_MpWDOScan.cdxml +++ /dev/null @@ -1,205 +0,0 @@ - - - - 1.0 - MpWDOScan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimization.psd1 b/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimization.psd1 deleted file mode 100644 index ec077c4..0000000 --- a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimization.psd1 +++ /dev/null @@ -1,28 +0,0 @@ -@{ - GUID = "{B9AF2675-4726-42FD-ADAB-38228176A516}" - Author = "Microsoft Corporation" - CLRVersion = "4.0" - CompanyName = "Microsoft Corporation" - Copyright = "(c) Microsoft Corporation. All rights reserved." - AliasesToExport = @() - FunctionsToExport = "Disable-DeliveryOptimizationVerboseLogs", - "Enable-DeliveryOptimizationVerboseLogs", - "Get-DeliveryOptimizationStatus", - "Get-DeliveryOptimizationPerfSnap", - "Get-DeliveryOptimizationPerfSnapThisMonth", - "Get-DOConfig", - "Get-DODownloadMode", - "Get-DOPercentageMaxForegroundBandwidth", - "Get-DOPercentageMaxBackgroundBandwidth" - CmdletsToExport = "Delete-DeliveryOptimizationCache", - "Set-DeliveryOptimizationStatus", - "Get-DeliveryOptimizationLog", - "Get-DeliveryOptimizationLogAnalysis", - "Set-DODownloadMode", - "Set-DOPercentageMaxForegroundBandwidth", - "Set-DOPercentageMaxBackgroundBandwidth" - PowerShellVersion = '5.1' - ModuleVersion = "1.0.2.0" - NestedModules = @('Microsoft.Windows.DeliveryOptimization.AdminCommands', 'DeliveryOptimizationVerboseLogs.psm1', 'DeliveryOptimizationStatus.psm1') - CompatiblePSEditions = @('Core','Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationStatus.psm1 b/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationStatus.psm1 deleted file mode 100644 index 8b09da3..0000000 --- a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationStatus.psm1 +++ /dev/null @@ -1,513 +0,0 @@ - -$global:DONamespace = "root/Microsoft/Windows/DeliveryOptimization" - -enum DownloadMode -{ - CdnOnly = 0 - Lan = 1 - Group = 2 - Internet = 3 - Simple = 99 - Bypass = 100 -} - -enum SwarmStatus -{ - Downloading = 0 - Complete - Caching - Paused -} - -enum Priority -{ - Background - Foreground -} - -enum ConfigProvider -{ - RegistryProvider = 5 - MdmProvider = 7 - SettingsProvider # Settings (UX) provider - AdminProvider # Admin provider (powershell, WMI, etc.) - - DefaultProvider = 99 # Also considered as InvalidProvider -} - -enum PeerType -{ - PeerType_none = 0 - PeerType_LAN - PeerType_CDN - PeerType_Internet - PeerType_Group - PeerType_DOINC - PeerType_LocalCache - PeerType_LinkLocal -} - -class DOPeerInfo -{ - [string] $IP; - [PeerType] $PeerType; - [bool] $ConnectionEstablished; - [uint64] $BytesSent; - [uint64] $BytesReceived; - [uint32] $UploadRateBytes; - [uint32] $DownloadRateBytes; -} - -class DOSwarmStats -{ - [string] $FileId - [uint64] $FileSize - [uint64] $FileSizeInCache - [uint64] $TotalBytesDownloaded - [double] $PercentPeerCaching - [uint64] $BytesFromPeers - [uint64] $BytesFromHttp - [SwarmStatus] $Status - [Priority] $Priority - [uint64] $BytesFromCacheServer - [uint64] $BytesFromLanPeers - [uint64] $BytesFromGroupPeers - [uint64] $BytesFromInternetPeers - [uint64] $BytesToLanPeers - [uint64] $BytesToGroupPeers - [uint64] $BytesToInternetPeers - [timespan] $DownloadDuration - [uint32] $HttpConnectionCount - [uint32] $LanConnectionCount - [uint32] $GroupConnectionCount - [uint32] $InternetConnectionCount - [DownloadMode] $DownloadMode - [uri] $SourceURL - [uri] $CacheHost - [uint32] $NumPeers - [string] $PredefinedCallerApplication - [Nullable[datetime]] $ExpireOn - [bool] $IsPinned -} - -class DOFilePeerInfo -{ - [string] $FileId - [DOPeerInfo[]] $PeersInfo -} - -class DOPerfSnap -{ - [uint32] $FilesDownloaded - [uint32] $FilesUploaded - [uint32] $Files - [uint64] $TotalBytesDownloaded - [uint64] $TotalBytesUploaded - [uint64] $AverageDownloadSize - [uint64] $AverageUploadSize - [DownloadMode] $DownloadMode - [uint64] $CacheSizeBytes - [uint64] $TotalDiskBytes - [uint64] $AvailableDiskBytes - [float] $CpuUsagePct - [uint64] $MemUsageKB - [uint32] $NumberOfPeers - [uint32] $CacheHostConnections - [uint32] $CdnConnections - [uint32] $LanConnections - [uint32] $LinkLocalConnections - [uint32] $GroupConnections - [uint32] $InternetConnections - [uint32] $DownlinkBps - [uint32] $DownlinkUsageBps - [uint32] $UplinkBps - [uint32] $UplinkUsageBps - [uint32] $ForegroundDownloadRatePct - [uint32] $BackgroundDownloadRatePct - [uint32] $UploadRatePct - [uint32] $UploadCount - [uint32] $ForegroundDownloadCount - [uint32] $ForegroundDownloadsPending - [uint32] $BackgroundDownloadCount - [uint32] $BackgroundDownloadsPending -} - -class DOMonthlyPerfSnap -{ - [uint64] $UploadLanBytes - [uint64] $UploadInternetBytes - [uint64] $DownloadHttpBytes - [uint64] $DownloadCacheHostBytes - [uint64] $DownloadLanBytes - [uint64] $DownloadInternetBytes - [uint64] $DownloadFgRateKbps - [uint64] $DownloadBgRateKbps - [bool] $UploadLimitReached - [datetime] $MonthStartDate -} - -class DOConfig -{ - [DownloadMode] $DownloadMode - [ConfigProvider] $DownloadModeProvider - [uint32] $DownBackLimitBps - [ConfigProvider] $DownBackLimitBpsProvider - [uint32] $DownloadForegroundLimitBps - [ConfigProvider] $DownloadForegroundLimitBpsProvider - [uint32] $DownBackLimitPct - [ConfigProvider] $DownBackLimitPctProvider - [uint16] $DownloadForegroundLimitPct - [ConfigProvider] $DownloadForegroundLimitPctProvider - [uint16] $MaxUploadRatePct - [ConfigProvider] $MaxUploadRateProvider - [double] $UploadLimitMonthlyGB - [ConfigProvider] $UploadLimitMonthlyGBProvider -} - -class DOExtendedConfig : DOConfig -{ - [uint16] $BatteryPctToSeed - [ConfigProvider] $BatteryPctToSeedProvider - [string] $WorkingDirectory - [ConfigProvider] $WorkingDirectoryProvider - [uint32] $MinTotalDiskSize - [ConfigProvider] $MinTotalDiskSizeProvider - [uint32] $MinTotalRAM - [ConfigProvider] $MinTotalRAMProvider - [bool] $VpnPeerCachingAllowed - [ConfigProvider] $VpnPeerCachingAllowedProvider - [string] $VpnKeywords - [ConfigProvider] $VpnKeywordsProvider -} - -function Get-DeliveryOptimizationStatus -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([DOSwarmStats],[DOFilePeerInfo],[string],[DOPeerInfo])] - Param( - [Parameter(ParameterSetName="PeerInfo")] - [switch] $PeerInfo, - [Parameter(ParameterSetName="PeerInfo")] - [switch] $AsObject, - [Parameter(ParameterSetName="PeerInfo")] - [int] $SelectPeerCount = 5 - ) - - if ($PeerInfo) - { - $swarms = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationFilePeerInfo - foreach ($swarm in $swarms) - { - $doSwarmInfo = [DOFilePeerInfo]@{ - FileId=$swarm.FileId - PeersInfo=@() - } - if ($swarm.IPs) - { - for ($i = 0; $i -lt $swarm.IPs.Length; $i++) - { - $doSwarmInfo.PeersInfo += [DOPeerInfo]@{ - IP=$swarm.IPs[$i] - PeerType=$swarm.PeerTypes[$i] - ConnectionEstablished=$swarm.ConnectionEstablished[$i] - BytesSent=$swarm.BytesSent[$i] - BytesReceived=$swarm.BytesReceived[$i] - UploadRateBytes=$swarm.UploadRates[$i] - DownloadRateBytes=$swarm.DownloadRates[$i] - } - } - $doSwarmInfo.PeersInfo = $($doSwarmInfo.PeersInfo | Sort-Object BytesReceived -Descending)[0..$($SelectPeerCount-1)] - } - if ($AsObject) - { - Write-output $doSwarmInfo - } - else - { - Write-Output $doSwarmInfo.FileId - Write-Output $doSwarmInfo.PeersInfo[0..$($SelectPeerCount-1)] - } - } - } - else - { - $swarms = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationFile - foreach ($swarm in $swarms) - { - $doSwarmStats = [DOSwarmStats]@{ - FileId=$swarm.FileId - FileSize=$swarm.FileSize - FileSizeInCache=$swarm.FileSizeInCache - TotalBytesDownloaded=$swarm.TotalBytesDownloaded - PercentPeerCaching=0 - BytesFromHttp=$swarm.BytesFromHttp - Status=$swarm.Status - BytesFromCacheServer=$swarm.BytesFromCacheServer - BytesFromLanPeers=$swarm.BytesFromLanPeers - BytesFromGroupPeers=$swarm.BytesFromGroupPeers - BytesFromInternetPeers=$swarm.BytesFromInternetPeers - BytesToLanPeers=$swarm.BytesToLanPeers - BytesToGroupPeers=$swarm.BytesToGroupPeers - DownloadDuration=[TimeSpan]::FromMilliseconds($swarm.DownloadDurationMsecs) - HttpConnectionCount=$swarm.HttpConnectionCount - LanConnectionCount=$swarm.LanConnectionCount - GroupConnectionCount=$swarm.GroupConnectionCount - InternetConnectionCount=$swarm.InternetConnectionCount - DownloadMode=$swarm.DownloadMode - SourceURL=$swarm.SourceURL - CacheHost=$swarm.CacheHost - NumPeers=$swarm.PeerCount - PredefinedCallerApplication=$swarm.PredefinedCallerApplication - ExpireOn=$swarm.ExpireOn - IsPinned=$swarm.IsPinned - } - $doSwarmStats.BytesFromPeers = $doSwarmStats.BytesFromLanPeers + $doSwarmStats.BytesFromGroupPeers + $doSwarmStats.BytesFromInternetPeers - if ($doSwarmStats.TotalBytesDownloaded -ne 0) - { - $doSwarmStats.PercentPeerCaching = (100.0 * $doSwarmStats.BytesFromPeers) / $doSwarmStats.TotalBytesDownloaded - } - if ($swarm.IsBackground) - { - $doSwarmStats.Priority = [Priority]::Background - } - else - { - $doSwarmStats.Priority = [Priority]::Foreground - } - Write-Output $doSwarmStats - } - } -} - -function Get-DeliveryOptimizationPerfSnap -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([DOPerfSnap])] - Param() - - $allStats = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DOBaseStatus - $basicConfig = $allStats | where {($_.CimClass).CimClassName -eq "MSFT_DeliveryOptimizationConfig"} - $currentStatus = $allStats | where {($_.CimClass).CimClassName -eq "MSFT_DOCurrentStatus"} - $downloadUsage = $allStats | where {($_.CimClass).CimClassName -eq "MSFT_DODownloadUsage"} - $uploadUsage = $allStats | where {($_.CimClass).CimClassName -eq "MSFT_DOUploadUsage"} - $snapInfo = [DOPerfSnap]@{ - DownloadMode=$basicConfig.DownloadMode - Files=$currentStatus.Swarms - CacheSizeBytes=$currentStatus.CacheSizeBytes - TotalDiskBytes=$currentStatus.DiskTotalBytes - AvailableDiskBytes=$currentStatus.DiskAvailableBytes - CpuUsagePct=$currentStatus.CpuUsagePct - MemUsageKB=$currentStatus.MemUsageKBytes - NumberOfPeers=$currentStatus.PeerInfoCount - CacheHostConnections=$currentStatus.CacheServerConnections - CdnConnections=$currentStatus.CdnConnections - LanConnections=$currentStatus.LanConnections - LinkLocalConnections=$currentStatus.LinkLocalConnections - GroupConnections=$currentStatus.GroupConnections - InternetConnections=$currentStatus.InternetConnections - DownlinkBps=$downloadUsage.LinkBps - DownlinkUsageBps=$downloadUsage.LinkUsageBps - UplinkBps=$uploadUsage.LinkBps - UplinkUsageBps=$uploadUsage.LinkUsageBps - ForegroundDownloadRatePct=$downloadUsage.ForegroundRatePct - BackgroundDownloadRatePct=$downloadUsage.BackgroundRatePct - UploadRatePct=$uploadUsage.UploadRatePct - UploadCount=$uploadUsage.Uploads - ForegroundDownloadCount=$downloadUsage.PriorityDownloads - ForegroundDownloadsPending=$downloadUsage.PriorityDownloadsPending - BackgroundDownloadCount=$downloadUsage.NormalDownloads - BackgroundDownloadsPending=$downloadUsage.NormalDownloadsPending - } - foreach ($swarmStats in (Get-DeliveryOptimizationStatus)) - { - if ($swarmStats.TotalBytesDownloaded -gt 0) - { - $snapInfo.FilesDownloaded++ - $snapInfo.TotalBytesDownloaded += $swarmStats.TotalBytesDownloaded - $bytesToPeers = $swarmStats.BytesToLanPeers + $swarmStats.BytesToGroupPeers + $swarmStats.BytesToInternetPeers - $snapInfo.TotalBytesUploaded += $bytesToPeers - if ($bytesToPeers -gt 0) - { - $snapInfo.FilesUploaded++ - } - } - - if ($snapInfo.FilesDownloaded -gt 0) - { - $snapInfo.AverageDownloadSize = $snapInfo.TotalBytesDownloaded / $snapInfo.FilesDownloaded; - } - - if ($snapInfo.FilesUploaded -gt 0) - { - $snapInfo.AverageUploadSize = $snapInfo.TotalBytesUploaded / $snapInfo.FilesUploaded - } - } - return $snapInfo -} - -function Get-DeliveryOptimizationPerfSnapThisMonth -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([DOMonthlyPerfSnap])] - Param() - - $usage = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DOBaseStatus - $downloadUsage = $usage | where {($_.CimClass).CimClassName -eq "MSFT_DODownloadUsage"} - $uploadUsage = $usage | where {($_.CimClass).CimClassName -eq "MSFT_DOUploadUsage"} - - $snapInfo = [DOMonthlyPerfSnap]@{ - UploadLanBytes=$uploadUsage.MonthlyLanBytes - UploadInternetBytes=$uploadUsage.MonthlyInternetBytes - DownloadHttpBytes=$downloadUsage.MonthlyCdnBytes - DownloadCacheHostBytes=$downloadUsage.MonthlyCacheHostBytes - DownloadLanBytes=$downloadUsage.MonthlyLanBytes - DownloadInternetBytes=$downloadUsage.MonthlyInternetBytes - DownloadFgRateKbps=$downloadUsage.MonthlyFrRateBps * 8 / 1Kb - DownloadBgRateKbps=$downloadUsage.MonthlyBkRateBps * 8 / 1Kb - UploadLimitReached=$false - MonthStartDate=Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0 - } - if ($uploadUsage.MonthlyUploadRestriction -ne 0) - { - $snapInfo.MonthlyUploadLimitReached = $true - } - - return $snapInfo -} - -function Get-DODownloadMode -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([DownloadMode])] - Param() - - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig - return [DownloadMode]($config.DownloadMode) -} - -function Get-DOMaxBackgroundBandwidth -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([uint32])] - Param() - - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig - return $config.DownBackLimitBps -} - -function Get-DOMaxForegroundBandwidth -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([uint32])] - Param() - - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig - return $config.DownForeLimitBps -} - -function Get-DOPercentageMaxBackgroundBandwidth -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([uint8])] - Param() - - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig - return $config.DownBackLimitPct -} - -function Get-DOPercentageMaxForegroundBandwidth -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([uint32])] - Param() - - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig - return $config.DownForeLimitPct -} - -function PopulateBaseConfig([DOConfig] $outConfig) -{ - $config = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationConfig -verbose:$false - $outConfig.DownloadMode = $config.DownloadMode - $outConfig.DownloadModeProvider = $config.DownloadModeProvider - $outConfig.DownBackLimitBps = $config.DownBackLimitBps - $outConfig.DownBackLimitBpsProvider = $config.DownBackLimitBpsProvider - $outConfig.DownloadForegroundLimitBps = $config.DownForeLimitBps - $outConfig.DownloadForegroundLimitBpsProvider = $config.DownForeLimitBpsProvider - $outConfig.DownBackLimitPct = $config.DownBackLimitPct - $outConfig.DownBackLimitPctProvider = $config.DownBackLimitPctProvider - $outConfig.DownloadForegroundLimitPct = $config.DownForeLimitPct - $outConfig.DownloadForegroundLimitPctProvider = $config.DownForeLimitPctProvider - $outConfig.MaxUploadRatePct = $config.MaxUploadRatePct - $outConfig.MaxUploadRateProvider = $config.MaxUploadRateProvider - $outConfig.UploadLimitMonthlyGB = $config.UpLimitMonthlyGB - $outConfig.UploadLimitMonthlyGBProvider = $config.UpLimitMonthlyGBProvider -} - -function Get-DOConfig -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - [OutputType([DOConfig],[DOExtendedConfig])] - Param() - - if ($VerbosePreference -ne "SilentlyContinue") - { - $extendedConfig = Get-CimInstance -Namespace $global:DONamespace -ClassName MSFT_DeliveryOptimizationExtendedConfig -verbose:$false - $config = [DOExtendedConfig]@{ - BatteryPctToSeed=$extendedConfig.BatteryPctToSeed - BatteryPctToSeedProvider=$extendedConfig.BatteryPctToSeedProvider - WorkingDirectory=$extendedConfig.WorkingDirectory - WorkingDirectoryProvider=$extendedConfig.WorkingDirectoryProvider - MinTotalDiskSize=$extendedConfig.MinTotalDiskSize - MinTotalDiskSizeProvider=$extendedConfig.MinTotalDiskSizeProvider - MinTotalRAM=$extendedConfig.MinTotalRAM - MinTotalRAMProvider=$extendedConfig.MinTotalRAMProvider - VpnPeerCachingAllowed=$extendedConfig.VpnPeerCachingAllowed - VpnPeerCachingAllowedProvider=$extendedConfig.VpnPeerCachingAllowedProvider - VpnKeywords=$extendedConfig.VpnKeywords - VpnKeywordsProvider=$extendedConfig.VpnKeywordsProvider - } - } - else - { - $config = [DOConfig]@{} - } - PopulateBaseConfig($config) - return $config -} diff --git a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationVerboseLogs.psm1 b/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationVerboseLogs.psm1 deleted file mode 100644 index a3fda16..0000000 --- a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/DeliveryOptimizationVerboseLogs.psm1 +++ /dev/null @@ -1,96 +0,0 @@ -$g_traceRegRoot = "HKU:\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Trace" - -function VerifyIsAdmin() -{ - $principal = New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent()) - if (!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) - { - throw "The command must run with Administrator privileges" - } -} - -function AttemptRestartIfNeeded([bool] $Force) -{ - $shouldRestart = $false - $svc = Get-Service dosvc - if ($svc.Status -eq "Running") - { - # We run as admin so we know we can restart the service - if ($Force) - { - $shouldRestart = $true - } - else - { - $input = Read-Host "Do you want to restart Delivery Optimization? (this will interrupt active downloads) [y/n]" - switch ($input) - { - {$_.ToLower() -eq "n"} { Write-Host "Changes will take effect the next time the Delivery Optimization service starts."; return } - {$_.ToLower() -eq "y"} { $shouldRestart = $true; break } - } - } - } - - if ($shouldRestart) - { - Stop-Service dosvc - Start-Service dosvc - } - Write-Host "Changes successfully applied." -} - -function Enable-DeliveryOptimizationVerboseLogs -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - Param ( - [Switch] - $Force = $false - ) - VerifyIsAdmin - New-PSDrive -Name HKU -PSProvider Registry -Root Registry::HKEY_USERS | Out-Null - - if (!$(Test-Path $g_traceRegRoot)) - { - New-Item $g_traceRegRoot | Out-Null - } - - $traceFileSize = 150 * 1000 - $traceFolderSize = 200 * 1000 - Write-Host "Setting Delivery Optimization tracing to Verbose and increasing the log limits..." - New-ItemProperty -Path $g_traceRegRoot -Name "TraceLevel_Override" -PropertyType Dword -Value 5 -Force | out-null - New-ItemProperty -Path $g_traceRegRoot -Name "TraceFileSizeKBytes" -PropertyType Dword -Value $traceFileSize -Force | out-null - New-ItemProperty -Path $g_traceRegRoot -Name "TraceFolderSizeKBytes" -PropertyType Dword -Value $traceFolderSize -Force | out-null - AttemptRestartIfNeeded $Force -} - -function Disable-DeliveryOptimizationVerboseLogs -{ - <# - .LINK - https://aka.ms/do-cmdlets - #> - [CmdletBinding()] - Param ( - [Switch] - $Force = $false - ) - - VerifyIsAdmin - New-PSDrive -Name HKU -PSProvider Registry -Root Registry::HKEY_USERS | Out-Null - - if (!$(Test-Path $g_traceRegRoot)) - { - Write-Host "Verbose logging is already disabled, exiting." - return - } - Write-Host "Disabling Delivery Optimization verbose logging..." - Remove-ItemProperty -Path $g_traceRegRoot -Name "TraceLevel_Override" -Force | out-null - Remove-ItemProperty -Path $g_traceRegRoot -Name "TraceFileSizeKBytes" -Force | out-null - Remove-ItemProperty -Path $g_traceRegRoot -Name "TraceFolderSizeKBytes" -Force | out-null - - AttemptRestartIfNeeded $Force -} diff --git a/newton-cn/bin/v1.0/Modules/DeliveryOptimization/Microsoft.Windows.DeliveryOptimization.AdminCommands.dll b/newton-cn/bin/v1.0/Modules/DeliveryOptimization/Microsoft.Windows.DeliveryOptimization.AdminCommands.dll deleted file mode 100644 index 6097c26ea6ae6375a47490e4912580e95e94e0df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75776 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 - - - 1.0 - DAClientExperienceConfiguration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.format.ps1xml b/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.format.ps1xml deleted file mode 100644 index fd6d641..0000000 --- a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.format.ps1xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - MSFT_DAClientExperienceConfiguration - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DAClientExperienceConfiguration - - - - - - - Description - - - CorporateResources - - - IPsecTunnelEndpoints - - - CustomCommands - - - PreferLocalNamesAllowed - - - UserInterface - - - PassiveMode - - - SupportEmail - - - FriendlyName - - - ManualEntryPointSelectionAllowed - - - GslbFqdn - - - ForceTunneling - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.types.ps1xml b/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.types.ps1xml deleted file mode 100644 index 30b2eb9..0000000 --- a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DAClientExperienceConfiguration.types.ps1xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DAClientExperienceConfiguration - - - ForceTunneling - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.DAClientExperienceConfiguration.ForceTunneling]($this.PSBase.CimInstanceProperties['ForceTunneling'].Value) - - - $this.PSBase.CimInstanceProperties['ForceTunneling'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.cdxml b/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.cdxml deleted file mode 100644 index 46ab2c4..0000000 --- a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.cdxml +++ /dev/null @@ -1,333 +0,0 @@ - - - - 1.0 - DAEntryPointTableItem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.format.ps1xml b/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.format.ps1xml deleted file mode 100644 index 83faf28..0000000 --- a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.format.ps1xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - MSFT_DASiteTableEntry - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DASiteTableEntry - Microsoft.Management.Infrastructure.CimInstance#MSFT_DASiteTableEntry - - - - - - - PolicyStore - - - EntryPointName - - - State - - - ADSite - - - TeredoServerIP - - - EntryPointRange - - - EntryPointIPAddress - - - IPHttpsProfile - - - GslbIP - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.types.ps1xml b/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.types.ps1xml deleted file mode 100644 index 686c500..0000000 --- a/newton-cn/bin/v1.0/Modules/DirectAccessClientComponents/MSFT_DASiteTableEntry.types.ps1xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - Microsoft.Management.Infrastructure.CimInstance#root/StandardCimv2/MSFT_DASiteTableEntry - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.DASiteTableEntry.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DASiteTableEntry - - - State - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.DASiteTableEntry.State]($this.PSBase.CimInstanceProperties['State'].Value) - - - $this.PSBase.CimInstanceProperties['State'].Value = [System.UInt32]$_ - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Dism/Dism.Format.ps1xml b/newton-cn/bin/v1.0/Modules/Dism/Dism.Format.ps1xml deleted file mode 100644 index d41d4d7..0000000 --- a/newton-cn/bin/v1.0/Modules/Dism/Dism.Format.ps1xml +++ /dev/null @@ -1,745 +0,0 @@ - - - - BaseDismObjectList - - Microsoft.Dism.Commands.BaseDismObject - - - - - - - LogPath - - - - - - - - ImageObjectList - - Microsoft.Dism.Commands.ImageObject - - - - - - - Path - - - Online - - - RestartNeeded - - - - - - - - ImageObjectWithStateList - - Microsoft.Dism.Commands.ImageObjectWithState - - - - - - - Path - - - Online - - - ImageHealthState - - - RestartNeeded - - - - - - - - EditionObjectList - - Microsoft.Dism.Commands.EditionObject - - - - - - - Edition - - - - - - - - MountedImageInfoObjectList - - Microsoft.Dism.Commands.MountedImageInfoObject - - - - - - - Path - - - ImagePath - - - ImageIndex - - - MountMode - - - MountStatus - - - - - - - - AppxPackageObjectList - - Microsoft.Dism.Commands.AppxPackageObject - - - - - - - DisplayName - - - Version - - - - - $a = "Unknown" - if($_.Architecture -eq 0){ $a="x86" } - elseif($_.Architecture -eq 5) {$a="arm"} - elseif($_.Architecture -eq 9) {$a="x64"} - elseif($_.Architecture -eq 6) {$a="ia64"} - elseif($_.Architecture -eq 11) {$a="neutral"} - return $a - - - - ResourceId - - - PackageName - - - - - $r = "" - if($_.Regions){ $r=$_.Regions } - return $r - - - - - - - - - BasicImageInfoObjectList - - Microsoft.Dism.Commands.BasicImageInfoObject - - - - - - - ImageIndex - - - ImageName - - - ImageDescription - - - - return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" - - - - - - - - ImageInfoObjectList - - Microsoft.Dism.Commands.ImageInfoObject - - - - - - - ImageIndex - - - ImageName - - - ImageDescription - - - - return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" - - - - - $a = "Unknown" - if($_.Architecture -eq 0){ $a="x86" } - elseif($_.Architecture -eq 5) {$a="arm"} - elseif($_.Architecture -eq 9) {$a="x64"} - elseif($_.Architecture -eq 6) {$a="ia64"} - return $a - - - - Hal - - - Version - - - SPBuild - - - SPLevel - - - EditionId - - - InstallationType - - - ProductType - - - ProductSuite - - - SystemRoot - - - - - $out = "" - $i=0 - foreach($a in $_.Languages) { - $out = $out + $a - if($i -eq $_.DefaultLanguageIndex) { $out=$out+" (Default)"} - if($i -lt ($_.Languages.count-1)) {$out=$out+"`r`n"} - $i=$i+1 - } - return $out; - - - - - - - - - WimImageInfoObjectList - - Microsoft.Dism.Commands.WimImageInfoObject - - - - - - - ImageIndex - - - ImageName - - - ImageDescription - - - - return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" - - - WIMBoot - - - - - $a = "Unknown" - if($_.Architecture -eq 0){ $a="x86" } - elseif($_.Architecture -eq 5) {$a="arm"} - elseif($_.Architecture -eq 9) {$a="x64"} - elseif($_.Architecture -eq 6) {$a="ia64"} - return $a - - - - Hal - - - Version - - - SPBuild - - - SPLevel - - - EditionId - - - InstallationType - - - ProductType - - - ProductSuite - - - SystemRoot - - - DirectoryCount - - - FileCount - - - CreatedTime - - - ModifiedTime - - - - - $out = "" - $i=0 - foreach($a in $_.Languages) { - $out = $out + $a - if($i -eq $_.DefaultLanguageIndex) { $out=$out+" (Default)"} - if($i -lt ($_.Languages.count-1)) {$out=$out+"`r`n"} - $i=$i+1 - } - return $out; - - - - - - - - - BasicFeatureObjectList - - Microsoft.Dism.Commands.BasicFeatureObject - - - - - - - FeatureName - - - State - - - - - - - - AdvancedFeatureObjectList - - Microsoft.Dism.Commands.AdvancedFeatureObject - - - - - - - FeatureName - - - DisplayName - - - Description - - - RestartRequired - - - State - - - - - $a = "`r`n" - $_.CustomProperties | foreach { $a = $a + $_.Path + "\" + $_.Name + " : " + $_.Value + "`r`n" } - return $a - - - - - - - - - BasicPackageObjectList - - Microsoft.Dism.Commands.BasicPackageObject - - - - - - - PackageName - - - PackageState - - - ReleaseType - - - - - if ([System.DateTime]::Equals($_.InstallTime,[System.DateTime]::MinValue)) { return "" } else { return $_.InstallTime } - - - - - - - - - AdvancedPackageObjectList - - Microsoft.Dism.Commands.AdvancedPackageObject - - - - - - - PackageName - - - Applicable - - - Copyright - - - Company - - - - - if ([System.DateTime]::Equals($_.CreationTime,[System.DateTime]::MinValue)) { return "" } else { return $_.CreationTime } - - - - Description - - - InstallClient - - - InstallPackageName - - - - - if ([System.DateTime]::Equals($_.InstallTime,[System.DateTime]::MinValue)) { return "" } else { return $_.InstallTime } - - - - - - if ([System.DateTime]::Equals($_.LastUpdateTime,[System.DateTime]::MinValue)) { return "" } else { return $_.LastUpdateTime } - - - - DisplayName - - - ProductName - - - ProductVersion - - - ReleaseType - - - RestartRequired - - - SupportInformation - - - PackageState - - - CompletelyOfflineCapable - - - CapabilityId - - - - - $a = "`r`n" - $_.CustomProperties | foreach { $a = $a + $_.Path + "\" + $_.Name + " : " + $_.Value + "`r`n" } - return $a - - - - Features - - - - - - - - BasicCapabilityObjectList - - Microsoft.Dism.Commands.BasicCapabilityObject - - - - - - - Name - - - State - - - - - - - - AdvancedCapabilityObjectList - - Microsoft.Dism.Commands.AdvancedCapabilityObject - - - - - - - Name - - - State - - - DisplayName - - - Description - - - DownloadSize - - - InstallSize - - - - - - - - BasicDriverObjectList - - Microsoft.Dism.Commands.BasicDriverObject - - - - - - - Driver - - - OriginalFileName - - - InBox - - - ClassName - - - BootCritical - - - ProviderName - - - - - if ([System.DateTime]::Equals($_.Date,[System.DateTime]::MinValue)) { return "" } else { return $_.Date } - - - - Version - - - - - - - - AdvancedDriverObjectList - - Microsoft.Dism.Commands.AdvancedDriverObject - - - - - - - Driver - - - OriginalFileName - - - InBox - - - ClassName - - - ClassDescription - - - ClassGuid - - - BootCritical - - - ProviderName - - - - - if ([System.DateTime]::Equals($_.Date,[System.DateTime]::MinValue)) { return "" } else { return $_.Date } - - - - Version - - - ManufacturerName - - - HardwareDescription - - - - - $a = "Unknown" - if($_.Architecture -eq 0){ $a="x86" } - elseif($_.Architecture -eq 5) {$a="arm"} - elseif($_.Architecture -eq 9) {$a="x64"} - elseif($_.Architecture -eq 6) {$a="ia64"} - return $a - - - - HardwareId - - - ServiceName - - - CompatibleIds - - - ExcludeIds - - - - - - - - WimBootEntryObjectList - - Microsoft.Dism.Commands.WimBootEntryObject - - - - - - - DataSourceID - - - ImageFile - - - - - - - - ReservedStorageStateObjectList - - Microsoft.Dism.Commands.ReservedStorageStateObject - - - - - - - ReservedStorageState - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Dism/Dism.Types.ps1xml b/newton-cn/bin/v1.0/Modules/Dism/Dism.Types.ps1xml deleted file mode 100644 index 4b2802b..0000000 --- a/newton-cn/bin/v1.0/Modules/Dism/Dism.Types.ps1xml +++ /dev/null @@ -1,586 +0,0 @@ - - - - Microsoft.Dism.Commands.BasicImageInfoObject - - - PsStandardMembers - - - DefaultDisplayProperty - ImagePath - - - DefaultDisplayPropertySet - - ImagePath - ImageName - ImageIndex - ImageDescription - ImageSize - - - - DefaultKeyPropertySet - - ImagePath - - - - - - - - Microsoft.Dism.Commands.ImageInfoObject - - - Version - "{0}.{1}.{2}.{3}" -f $this.MajorVersion, $this.MinorVersion, $this.Build, $this.SPBuild - - - PsStandardMembers - - - DefaultDisplayProperty - ImagePath - - - DefaultDisplayPropertySet - - ImagePath - ImageName - ImageIndex - ImageDescription - ImageSize - Architecture - ProductName - EditionId - InstallationType - Hal - ProductType - ProductSuite - Version - SPLevel - SystemRoot - Languages - DefaultLanguageIndex - - - - DefaultKeyPropertySet - - ImagePath - - - - - - - - Microsoft.Dism.Commands.WimImageInfoObject - - - Version - "{0}.{1}.{2}.{3}" -f $this.MajorVersion, $this.MinorVersion, $this.Build, $this.SPBuild - - - PsStandardMembers - - - DefaultDisplayProperty - ImagePath - - - DefaultDisplayPropertySet - - ImagePath - ImageName - ImageIndex - ImageDescription - ImageSize - WIMBoot - Architecture - ProductName - EditionId - InstallationType - Hal - ProductType - ProductSuite - Version - SPLevel - SystemRoot - Languages - DefaultLanguageIndex - DirectoryCount - FileCount - CreatedTime - ModifiedTime - - - - DefaultKeyPropertySet - - ImagePath - - - - - - - - Microsoft.Dism.Commands.ImageObject - - - PsStandardMembers - - - DefaultDisplayProperty - Path - - - DefaultDisplayPropertySet - - Path - Online - - - - DefaultKeyPropertySet - - Path - - - - - - - - Microsoft.Dism.Commands.MountedImageInfoObject - - - MountPath - Path - - - PsStandardMembers - - - DefaultDisplayProperty - MountPath - - - DefaultDisplayPropertySet - - MountPath - ImagePath - ImageIndex - MountMode - MountStatus - - - - DefaultKeyPropertySet - - MountPath - - - - - - - - Microsoft.Dism.Commands.BasicPackageObject - - - PsStandardMembers - - - DefaultDisplayProperty - PackageName - - - DefaultDisplayPropertySet - - PackageName - PackageState - ReleaseType - InstallTime - - - - DefaultKeyPropertySet - - PackageName - - - - - - - - Microsoft.Dism.Commands.BasicCapabilityObject - - - PsStandardMembers - - - DefaultDisplayProperty - Name - - - DefaultDisplayPropertySet - - Name - State - - - - DefaultKeyPropertySet - - Name - - - - - - - - Microsoft.Dism.Commands.AdvancedPackageObject - - - PsStandardMembers - - - DefaultDisplayProperty - PackageName - - - DefaultDisplayPropertySet - - PackageName - PackageState - ReleaseType - InstallTime - Applicable - Copyright - Company - CreationTime - DisplayName - Description - InstallClient - InstallPackageName - LastUpdateTime - ProductName - ProductVersion - RestartRequired - CompletelyOfflineCapable - CapabilityId - SupportInformation - CustomProperties - Features - - - - DefaultKeyPropertySet - - PackageName - - - - - - - - Microsoft.Dism.Commands.AdvancedCapabilityObject - - - PsStandardMembers - - - DefaultDisplayProperty - Name - - - DefaultDisplayPropertySet - - Name - State - DisplayName - Description - DownloadSize - InstallSize - - - - DefaultKeyPropertySet - - Name - - - - - - - - Microsoft.Dism.Commands.ImageObjectWithState - - - PsStandardMembers - - - DefaultDisplayProperty - ImageHealthState - - - DefaultDisplayPropertySet - - ImageHealthState - - - - DefaultKeyPropertySet - - ImageHealthState - - - - - - - - Microsoft.Dism.Commands.BasicFeatureObject - - - PsStandardMembers - - - DefaultDisplayProperty - FeatureName - - - DefaultDisplayPropertySet - - FeatureName - State - - - - DefaultKeyPropertySet - - FeatureName - - - - - - - - Microsoft.Dism.Commands.AdvancedFeatureObject - - - PsStandardMembers - - - DefaultDisplayProperty - FeatureName - - - DefaultDisplayPropertySet - - FeatureName - State - DisplayName - Description - RestartRequired - CustomProperties - - - - DefaultKeyPropertySet - - FeatureName - - - - - - - - Microsoft.Dism.Commands.EditionObject - - - PsStandardMembers - - - DefaultDisplayProperty - Edition - - - DefaultDisplayPropertySet - - Edition - - - - DefaultKeyPropertySet - - Edition - - - - - - - - Microsoft.Dism.Commands.BasicDriverObject - - - Version - "{0}.{1}.{2}.{3}" -f $this.MajorVersion, $this.MinorVersion, $this.Build, $this.Revision - - - PsStandardMembers - - - DefaultDisplayProperty - Driver - - - DefaultDisplayPropertySet - - Driver - OriginalFileName - InBox - CatalogFile - ClassName - ClassGuid - ClassDescription - BootCritical - DriverSignature - ProviderName - Date - Version - - - - DefaultKeyPropertySet - - Driver - - - - - - - - Microsoft.Dism.Commands.AdvancedDriverObject - - - Version - "{0}.{1}.{2}.{3}" -f $this.MajorVersion, $this.MinorVersion, $this.Build, $this.Revision - - - PsStandardMembers - - - DefaultDisplayProperty - Driver - - - DefaultDisplayPropertySet - - Driver - OriginalFileName - InBox - CatalogFile - ClassName - ClassGuid - ClassDescription - BootCritical - DriverSignature - ProviderName - Date - Version - ManufacturerName - HardwareDescription - HardwareId - Architecture - ServiceName - CompatibleIds - ExcludeIds - - - - DefaultKeyPropertySet - - Driver - - - - - - - - Microsoft.Dism.Commands.AppxPackageObject - - - Version - "{0}.{1}.{2}.{3}" -f $this.MajorVersion, $this.MinorVersion, $this.Build, $this.Revision - - - PsStandardMembers - - - DefaultDisplayProperty - DisplayName - - - DefaultDisplayPropertySet - - DisplayName - PackageName - PublisherId - Version - Architecture - ResourceId - InstallLocation - Region - - - - DefaultKeyPropertySet - - DisplayName - - - - - - - - Microsoft.Dism.Commands.ReservedStorageStateObject - - - PsStandardMembers - - - DefaultDisplayProperty - ReservedStorageState - - - DefaultDisplayPropertySet - - ReservedStorageState - - - - DefaultKeyPropertySet - - ReservedStorageState - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/Dism/Dism.psd1 b/newton-cn/bin/v1.0/Modules/Dism/Dism.psd1 deleted file mode 100644 index 896d5aa..0000000 --- a/newton-cn/bin/v1.0/Modules/Dism/Dism.psd1 +++ /dev/null @@ -1,86 +0,0 @@ -@{ - GUID = "{389c464d-8b8d-48e9-aafe-6d8a590d6798}" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390767" - ModuleVersion = "3.0" - PowerShellVersion = "5.1" - ClrVersion = "4.0" - RootModule = "Dism.psm1" - NestedModules = "Microsoft.Dism.PowerShell.dll" - TypesToProcess = "Dism.Types.ps1xml" - FormatsToProcess = "Dism.Format.ps1xml" - CmdletsToExport = @( - 'Add-AppxProvisionedPackage', - 'Add-WindowsDriver', - 'Add-WindowsCapability', - 'Add-WindowsImage', - 'Add-WindowsPackage', - 'Clear-WindowsCorruptMountPoint', - 'Disable-WindowsOptionalFeature', - 'Dismount-WindowsImage', - 'Enable-WindowsOptionalFeature', - 'Expand-WindowsImage', - 'Expand-WindowsCustomDataImage', - 'Export-WindowsCapabilitySource', - 'Export-WindowsDriver', - 'Export-WindowsImage', - 'Get-AppxProvisionedPackage', - 'Get-NonRemovableAppsPolicy', - 'Get-WIMBootEntry', - 'Get-WindowsDriver', - 'Get-WindowsEdition', - 'Get-WindowsCapability', - 'Get-WindowsImage', - 'Get-WindowsImageContent' - 'Get-WindowsOptionalFeature', - 'Get-WindowsPackage', - 'Get-WindowsReservedStorageState', - 'Mount-WindowsImage', - 'New-WindowsImage', - 'New-WindowsCustomImage', - 'Optimize-AppxProvisionedPackages', - 'Optimize-WindowsImage', - 'Remove-AppxProvisionedPackage', - 'Remove-WindowsDriver', - 'Remove-WindowsCapability', - 'Remove-WindowsImage', - 'Remove-WindowsPackage', - 'Repair-WindowsImage', - 'Save-WindowsImage', - 'Set-AppXProvisionedDataFile', - 'Set-NonRemovableAppsPolicy', - 'Set-WindowsEdition', - 'Set-WindowsProductKey', - 'Set-WindowsReservedStorageState', - 'Start-OSUninstall', - 'Split-WindowsImage', - 'Use-WindowsUnattend', - 'Update-WIMBootEntry' - ) - AliasesToExport = @( - 'Apply-WindowsUnattend', - 'Add-ProvisionedAppxPackage', - 'Remove-ProvisionedAppxPackage', - 'Get-ProvisionedAppxPackage', - 'Optimize-ProvisionedAppxPackages', - 'Set-ProvisionedAppXDataFile', - 'Add-AppProvisionedPackage', - 'Remove-AppProvisionedPackage', - 'Get-AppProvisionedPackage', - 'Optimize-AppProvisionedPackages', - 'Set-AppPackageProvisionedDataFile', - 'Add-ProvisionedAppPackage', - 'Remove-ProvisionedAppPackage', - 'Get-ProvisionedAppPackage', - 'Optimize-ProvisionedAppPackages', - 'Set-ProvisionedAppPackageDataFile' - ) - FunctionsToExport = @( - ) - CompatiblePSEditions = @( - 'Desktop', - 'Core' - ) -} diff --git a/newton-cn/bin/v1.0/Modules/Dism/Dism.psm1 b/newton-cn/bin/v1.0/Modules/Dism/Dism.psm1 deleted file mode 100644 index de2b93d..0000000 --- a/newton-cn/bin/v1.0/Modules/Dism/Dism.psm1 +++ /dev/null @@ -1,30 +0,0 @@ -# -# Script Module file for Dism module. -# -# Copyright (c) Microsoft Corporation -# - -# -# Cmdlet aliases -# - -Set-Alias Apply-WindowsUnattend Use-WindowsUnattend -Set-Alias Add-ProvisionedAppxPackage Add-AppxProvisionedPackage -Set-Alias Remove-ProvisionedAppxPackage Remove-AppxProvisionedPackage -Set-Alias Get-ProvisionedAppxPackage Get-AppxProvisionedPackage -Set-Alias Optimize-ProvisionedAppxPackages Optimize-AppxProvisionedPackages -Set-Alias Set-ProvisionedAppXDataFile Set-AppXProvisionedDataFile - -# Below are aliases for Appx related cmdlets and aliases -Set-Alias Add-AppProvisionedPackage Add-AppxProvisionedPackage -Set-Alias Remove-AppProvisionedPackage Remove-AppxProvisionedPackage -Set-Alias Get-AppProvisionedPackage Get-AppxProvisionedPackage -Set-Alias Optimize-AppProvisionedPackages Optimize-AppxProvisionedPackages -Set-Alias Set-AppPackageProvisionedDataFile Set-AppXProvisionedDataFile -Set-Alias Add-ProvisionedAppPackage Add-AppxProvisionedPackage -Set-Alias Remove-ProvisionedAppPackage Remove-AppxProvisionedPackage -Set-Alias Get-ProvisionedAppPackage Get-AppxProvisionedPackage -Set-Alias Optimize-ProvisionedAppPackages Optimize-AppxProvisionedPackages -Set-Alias Set-ProvisionedAppPackageDataFile Set-AppXProvisionedDataFile - -Export-ModuleMember -Alias * -Function * -Cmdlet * diff --git a/newton-cn/bin/v1.0/Modules/Dism/Microsoft.Dism.PowerShell.dll b/newton-cn/bin/v1.0/Modules/Dism/Microsoft.Dism.PowerShell.dll deleted file mode 100644 index c85582eb75d28c7d9a47622bdaed0975c2312783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132608 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 M>Z_=Rud2-d1dbg9>Hq)$ diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClient.psd1 b/newton-cn/bin/v1.0/Modules/DnsClient/DnsClient.psd1 deleted file mode 100644 index 680938c..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClient.psd1 +++ /dev/null @@ -1,53 +0,0 @@ -@{ - GUID = "5696d5ef-fa2d-4997-94f1-0bc13daa2ac5" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = "1.0.0.0" - PowerShellVersion = '5.1' - ClrVersion = "4.0" - NestedModules = @( - "dnslookup", - "MSFT_DnsClient.cdxml", - "MSFT_DnsClientCache.cdxml", - "MSFT_DnsClientGlobalSetting.cdxml", - "MSFT_DnsClientServerAddress.cdxml", - "PS_DnsClientNrptPolicy_v1.0.0.cdxml", - "PS_DnsClientNRPTGlobal_v1.0.0.cdxml", - "PS_DnsClientNRPTRule_v1.0.0.cdxml" - ) - TypesToProcess = @( - "DnsCmdlets.Types.ps1xml", - "DnsConfig.Types.ps1xml", - "DnsClientPSProvider.Types.ps1xml" - ) - FormatsToProcess = @( - "DnsCmdlets.Format.ps1xml", - "DnsConfig.Format.ps1xml", - "DnsClientPSProvider.Format.ps1xml" - ) - CmdletsToExport = @( - "Resolve-DnsName" - ) - FunctionsToExport = @( - "Clear-DnsClientCache", - "Get-DnsClient", - "Get-DnsClientCache", - "Get-DnsClientGlobalSetting", - "Get-DnsClientServerAddress", - "Register-DnsClient", - "Set-DnsClient", - "Set-DnsClientGlobalSetting", - "Set-DnsClientServerAddress", - "Add-DnsClientNrptRule", - "Get-DnsClientNrptPolicy", - "Get-DnsClientNrptGlobal", - "Get-DnsClientNrptRule", - "Remove-DnsClientNrptRule", - "Set-DnsClientNrptGlobal", - "Set-DnsClientNrptRule" - ) - AliasesToExport = @() - HelpInfoUri = "https://go.microsoft.com/fwlink/?linkid=390768" - CompatiblePSEditions = @('Desktop','Core') -} diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Format.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Format.ps1xml deleted file mode 100644 index cd26b7b..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Format.ps1xml +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - DnsClientNRPTRule_ListView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule - - - - - - - Name - - - Version - - - Namespace - - - IPsecCARestriction - - - DirectAccessDnsServers - - - DirectAccessEnabled - - - DirectAccessProxyType - - - DirectAccessProxyName - - - DirectAccessQueryIPsecEncryption - - - DirectAccessQueryIPsecRequired - - - NameServers - - - DnsSecEnabled - - - DnsSecQueryIPsecEncryption - - - DnsSecQueryIPsecRequired - - - DnsSecValidationRequired - - - NameEncoding - - - DisplayName - - - Comment - - - - - - - - DnsClientNRPTRule_TableView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule - - - - - - 25 - - - - 6 - - - - 30 - - - - 6 - - - - 35 - - - - 20 - - - - - - - Namespace - - - DirectAccessEnabled - - - DirectAccessDnsServers - - - DnsSecEnabled - - - NameServers - - - NameEncoding - - - - - - - - DnsClientNRPTRule_WideView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule - - - - - - Namespace - - - - - - - - - DnsClientNRPTGlobal_TableView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptGlobal - - - - - - - - - EnableDAForAllNetworks - - - QueryPolicy - - - SecureNameQueryFallback - - - - - - - - - DnsClientNRPTGlobal_ListView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptGlobal - - - - - - - EnableDAForAllNetworks - - - QueryPolicy - - - SecureNameQueryFallback - - - - - - - - - DnsClientPolicyConfiguration_ListView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientPolicyConfiguration - - - - - - - Namespace - - - QueryPolicy - - - SecureNameQueryFallback - - - DirectAccessIPsecCARestriction - - - DirectAccessProxyName - - - DirectAccessDnsServers - - - DirectAccessEnabled - - - DirectAccessProxyType - - - DirectAccessQueryIPsecEncryption - - - DirectAccessQueryIPsecRequired - - - NameServers - - - DnsSecIPsecCARestriction - - - DnsSecQueryIPsecEncryption - - - DnsSecQueryIPsecRequired - - - DnsSecValidationRequired - - - NameEncoding - - - - - - - - DnsClientPolicyConfiguration_TableView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientPolicyConfiguration - - - - - - 25 - - - - 6 - - - - 30 - - - - 6 - - - - 35 - - - - 20 - - - - - - - Namespace - - - DirectAccessEnabled - - - DirectAccessDnsServers - - - DnsSecValidationRequired - - - NameServers - - - NameEncoding - - - - - - - - DnsClientPolicyConfiguration_WideView - - Microsoft.Management.Infrastructure.CimInstance#DnsClientPolicyConfiguration - - - - - - Namespace - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Types.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Types.ps1xml deleted file mode 100644 index 7f844e2..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsClientPSProvider.Types.ps1xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule - - - DA - DirectAccessEnabled - - - DADnsServers - DirectAccessDnsServers - - - DnsSec - DnsSecEnabled - - - DirectAccessDnsServers - - [OutputType([System.Net.IPAddress[]])] - param() - [System.Net.IPAddress[]]($this.PSBase.CimInstanceProperties['DirectAccessDnsServers'].Value) - - - param([System.Net.IPAddress[]]$value) - $this.PSBase.CimInstanceProperties['DirectAccessDnsServers'].Value = [System.String[]]$value - - - - NameServers - - [OutputType([System.Net.IPAddress[]])] - param() - [System.Net.IPAddress[]]($this.PSBase.CimInstanceProperties['NameServers'].Value) - - - param([System.Net.IPAddress[]]$value) - $this.PSBase.CimInstanceProperties['NameServers'].Value = [System.String[]]$value - - - - - - Microsoft.Management.Infrastructure.CimInstance#DnsClientPolicyConfiguration - - - DA - DirectAccessEnabled - - - DADnsServers - DirectAccessDnsServers - - - DnsSec - DnsSecValidationRequired - - - DirectAccessDnsServers - - [OutputType([System.Net.IPAddress[]])] - param() - [System.Net.IPAddress[]]($this.PSBase.CimInstanceProperties['DirectAccessDnsServers'].Value) - - - param([System.Net.IPAddress[]]$value) - $this.PSBase.CimInstanceProperties['DirectAccessDnsServers'].Value = [System.String[]]$value - - - - NameServers - - [OutputType([System.Net.IPAddress[]])] - param() - [System.Net.IPAddress[]]($this.PSBase.CimInstanceProperties['NameServers'].Value) - - - param([System.Net.IPAddress[]]$value) - $this.PSBase.CimInstanceProperties['NameServers'].Value = [System.String[]]$value - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Format.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Format.ps1xml deleted file mode 100644 index b9da15f..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Format.ps1xml +++ /dev/null @@ -1,1748 +0,0 @@ - - - - - - Microsoft.DnsClient.Commands.DnsRecord - - Microsoft.DnsClient.Commands.DnsRecord - - - - - - - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord - - Microsoft.DnsClient.Commands.DnsRecord - - - - - - - Name - - - - Type - - - TTL - - - DataLength - - - Section - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_A_AAAA - - Microsoft.DnsClient.Commands.DnsRecord_A - Microsoft.DnsClient.Commands.DnsRecord_AAAA - - - - - - - 46 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 41 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - IPAddress - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_A_AAAA - - Microsoft.DnsClient.Commands.DnsRecord_A - Microsoft.DnsClient.Commands.DnsRecord_AAAA - - - - - - - Name - - - - Type - - - TTL - - - DataLength - - - Section - - - IPAddress - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_PTR - - Microsoft.DnsClient.Commands.DnsRecord_PTR - - - - - - 30 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - NameHost - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_PTR - - Microsoft.DnsClient.Commands.DnsRecord_PTR - - - - - - - Name - - - - Type - - - TTL - - - Section - - - NameHost - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MX - - Microsoft.DnsClient.Commands.DnsRecord_MX - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 41 - left - - - - 41 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - NameExchange - - - Preference - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MX - - Microsoft.DnsClient.Commands.DnsRecord_MX - - - - - - - Name - - - - Type - - - TTL - - - NameExchange - - - Preference - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SOA - - Microsoft.DnsClient.Commands.DnsRecord_SOA - - - - - - 27 - left - - - - 4 - left - - - - 5 - left - - - - 10 - left - - - - 27 - left - - - - 27 - left - - - - 12 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - PrimaryServer - - - NameAdministrator - - - SerialNumber - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SOA - - Microsoft.DnsClient.Commands.DnsRecord_SOA - - - - - - - Name - - - - Type - - - TTL - - - PrimaryServer - - - NameAdministrator - - - SerialNumber - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MINFO - - Microsoft.DnsClient.Commands.DnsRecord_MINFO - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 20 - left - - - - 20 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - NameMailbox - - - NameErrorsMailbox - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MINFO - - Microsoft.DnsClient.Commands.DnsRecord_MINFO - - - - - - - Name - - - - Type - - - TTL - - - NameMailbox - - - NameErrorsMailbox - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_TXT - - Microsoft.DnsClient.Commands.DnsRecord_TXT - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 41 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - Strings - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_TXT - - Microsoft.DnsClient.Commands.DnsRecord_TXT - - - - - - - Name - - - - Type - - - TTL - - - Strings - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NULL - - Microsoft.DnsClient.Commands.DnsRecord_NULL - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 41 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - Data - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NULL - - Microsoft.DnsClient.Commands.DnsRecord_NULL - - - - - - - Name - - - - Type - - - TTL - - - Data - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WKS - - Microsoft.DnsClient.Commands.DnsRecord_WKS - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 16 - left - - - - 8 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - IP4Address - - - Protocol - - - Bitmask - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WKS - - Microsoft.DnsClient.Commands.DnsRecord_WKS - - - - - - - Name - - - - Type - - - TTL - - - IP4Address - - - Protocol - - - - - $output = "{" - $_.Bitmask | foreach { $output = $output + $_ + ", " } - $output = $output.TrimEnd(", ") + "}" - echo $output - - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SRV - - Microsoft.DnsClient.Commands.DnsRecord_SRV - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 30 - left - - - - 8 - left - - - - 6 - left - - - - 4 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - NameTarget - - - Priority - - - Weight - - - Port - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SRV - - Microsoft.DnsClient.Commands.DnsRecord_SRV - - - - - - - Name - - - - Type - - - TTL - - - NameTarget - - - Priority - - - Weight - - - Port - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DS - - Microsoft.DnsClient.Commands.DnsRecord_DS - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 5 - left - - - - 14 - left - - - - 4 - left - - - - left - - - - - - - Name - - - Type - - - TTL - - - Section - - - KeyTag - - - Algorithm - - - DType - - - Digest - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DS - - Microsoft.DnsClient.Commands.DnsRecord_DS - - - - - - - Name - - - - Type - - - TTL - - - Section - - - KeyTag - - - Algorithm - - - DType - - - Digest - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WINS - - Microsoft.DnsClient.Commands.DnsRecord_WINS - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 11 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - MappingFlag - - - IP4Addresses - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WINS - - Microsoft.DnsClient.Commands.DnsRecord_WINS - - - - - - - Name - - - - Type - - - TTL - - - MappingFlag - - - LookupTimeout - - - CacheTimeout - - - - - $output = "{" - $_.IP4Addresses | foreach { $output = $output + $_ + ", " } - $output = $output.TrimEnd(", ") + "}" - echo $output - - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DNSKEY - - Microsoft.DnsClient.Commands.DnsRecord_DNSKEY - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 6 - left - - - - 8 - left - - - - 14 - left - - - - 20 - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - Flags - - - Protocol - - - Algorithm - - - Key - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DNSKEY - - Microsoft.DnsClient.Commands.DnsRecord_DNSKEY - - - - - - - Name - - - - Type - - - TTL - - - Section - - - Flags - - - Protocol - - - Algorithm - - - - - $output = "{" - $_.Key | foreach { $output = $output + $_ + ", " } - $output = $output.TrimEnd(", ") + "}" - echo $output - - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_RRSIG - - Microsoft.DnsClient.Commands.DnsRecord_RRSIG - - - - - - - Name - - - - Type - - - TTL - - - TypeCovered - - - Algorithm - - - LabelCount - - - OriginalTtl - - - Expiration - - - Signed - - - KeyTag - - - Signer - - - - - $output = "{" - $_.Signature | foreach { $output = $output + $_ + ", " } - $output = $output.TrimEnd(", ") + "}" - echo $output - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_RRSIG - - Microsoft.DnsClient.Commands.DnsRecord_RRSIG - - - - - - 30 - left - - - - 5 - left - - - - 4 - left - - - - 8 - left - - - - 14 - left - - - - 10 - left - - - - 10 - left - - - - 20 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - TypeCovered - - - Algorithm - - - Expiration - - - Signed - - - Signer - - - Signature - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NSEC - - Microsoft.DnsClient.Commands.DnsRecord_NSEC - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - 41 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - NextDomainName - - - TypeBitMap - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NSEC - - Microsoft.DnsClient.Commands.DnsRecord_NSEC - - - - - - - Name - - - - Type - - - TTL - - - Section - - - NextDomainName - - - - - $output = "{" - $_.TypeBitMap | foreach { $output = $output + $_ + ", " } - $output = $output.TrimEnd(", ") + "}" - echo $output - - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DHCID - - Microsoft.DnsClient.Commands.DnsRecord_DHCID - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - Dhcid - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DHCID - - Microsoft.DnsClient.Commands.DnsRecord_DHCID - - - - - - - Name - - - - Type - - - TTL - - - Section - - - Dhcid - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_OPT - - Microsoft.DnsClient.Commands.DnsRecord_Default - Microsoft.DnsClient.Commands.DnsRecord_OPT - - - - - - 40 - left - - - - 6 - left - - - - 5 - left - - - - 10 - left - - - - left - - - - - - - - Name - - - Type - - - TTL - - - Section - - - Data - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_OPT - - Microsoft.DnsClient.Commands.DnsRecord_OPT - - - - - - - Name - - - - Type - - - TTL - - - Section - - - Protocol - - - Data - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Types.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Types.ps1xml deleted file mode 100644 index 784b0ce..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsCmdlets.Types.ps1xml +++ /dev/null @@ -1,699 +0,0 @@ - - - - - Microsoft.DnsClient.Commands.DnsRecord - - - QueryType - Type - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - - - - DefaultDisplayProperty - Name - - - DefaultKeyPropertySet - - Name - QueryType - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_A - - - Address - IP4Address - - - IPAddress - IP4Address - - - QueryType - Type - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - IP4Address - - - - DefaultDisplayProperty - PrimaryDomainSuffix - - - DefaultKeyPropertySet - - IP4Address - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_AAAA - - - Address - IP6Address - - - IPAddress - IP6Address - - - QueryType - Type - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - IP6Address - - - - DefaultDisplayProperty - IP6Address - - - DefaultKeyPropertySet - - IP6Address - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_TXT - - - Text - Strings - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Strings - - - - DefaultDisplayProperty - Strings - - - DefaultKeyPropertySet - - Strings - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MX - - - Exchange - NameExchange - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NameExchange - Preference - - - - DefaultDisplayProperty - NameExchange - - - DefaultKeyPropertySet - - NameExchange - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_PTR - - - Server - NameHost - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NameHost - - - - DefaultDisplayProperty - NameHost - - - DefaultKeyPropertySet - - NameHost - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SOA - - - Administrator - NameAdministrator - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NameAdministrator - SerialNumber - TimeToZoneRefresh - TimeToZoneFailureRetry - TimeToExpiration - DefaultTTL - - - - DefaultDisplayProperty - SerialNumber - - - DefaultKeyPropertySet - - SerialNumber - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_MINFO - - - Mailbox - NameMailbox - - - ErrorsMailbox - NameErrorsMailbox - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NameMailbox - NameErrorsMailbox - - - - DefaultDisplayProperty - NameMailbox - - - DefaultKeyPropertySet - - NameMailbox - NameErrorsMailbox - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NULL - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Data - - - - DefaultDisplayProperty - Data - - - DefaultKeyPropertySet - - Data - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WKS - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - IP4Address - Protocol - Bitmask - - - - DefaultDisplayProperty - IP4Address - - - DefaultKeyPropertySet - - IP4Address - Protocol - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_SRV - - - Target - NameTarget - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NameTarget - Priority - Weight - Port - - - - DefaultDisplayProperty - NameTarget - - - DefaultKeyPropertySet - - NameTarget - Priority - Port - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DS - - - Key - KeyTag - - - DigestType - DType - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - KeyTag - Algorithm - DigestType - Digest - - - - DefaultDisplayProperty - KeyTag - - - DefaultKeyPropertySet - - KeyTag - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_RRSIG - - - Key - KeyTag - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - TypeCovered - Algorithm - LabelCount - OriginalTtl - Expiration - Signed - Signer - Signature - - - - DefaultDisplayProperty - Signer - - - DefaultKeyPropertySet - - KeyTag - Signer - Signature - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DNSKEY - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Protocol - Flags - Algorithm - Key - - - - DefaultDisplayProperty - Key - - - DefaultKeyPropertySet - - Algorithm - Key - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_NSEC - - - BitMap - TypeBitMap - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - NextDomainName - TypeBitMap - - - - DefaultDisplayProperty - NextDomainName - - - DefaultKeyPropertySet - - NextDomainName - TypeBitMap - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_WINS - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - MappingFlag - IP4Addresses - - - - DefaultDisplayProperty - IP4Addresses - - - DefaultKeyPropertySet - - IP4Addresses - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_DHCID - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Dhcid - - - - DefaultDisplayProperty - Dhcid - - - DefaultKeyPropertySet - - Dhcid - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_OPT - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Data - - - - DefaultDisplayProperty - Data - - - DefaultKeyPropertySet - - Data - - - - - - - - - Microsoft.DnsClient.Commands.DnsRecord_Default - - - PsStandardMembers - - - DefaultDisplayPropertySet - - Name - QueryType - TTL - Section - Data - - - - DefaultDisplayProperty - Data - - - DefaultKeyPropertySet - - Data - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Format.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Format.ps1xml deleted file mode 100644 index d13add9..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Format.ps1xml +++ /dev/null @@ -1,566 +0,0 @@ - - - - - - DnsClientTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClient - - - - - - 28 - - - - 9 - Left - - - - 24 - - - - 24 - - - - 16 - - - - 13 - - - - - - - - - $alias = $_.InterfaceAlias - $width = 28 - $out = $alias - if ($alias.Length -gt $width) - { - $idpresent = $alias -match "(\d+$)" - if ($idpresent -and ($width -gt ($matches[0].length + 3))) - { - $base = $alias.substring(0, $width - ($matches[0].length + 3)) - $out = $base + "..." + $matches[0] - } - } - return $out - - - - InterfaceIndex - Right - - - ConnectionSpecificSuffix - - - ConnectionSpecificSuffixSearchList - - - RegisterThisConnectionsAddress - - - UseSuffixWhenRegistering - - - - - - - - DnsClientListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClient - - - - - - - - InterfaceAlias - - - - InterfaceIndex - - - - ConnectionSpecificSuffix - - - - ConnectionSpecificSuffixSearchList - - - - RegisterThisConnectionsAddress - - - - UseSuffixWhenRegistering - - - - - - - - - DnsClientCacheTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientCache - - - - - - 25 - - - - 25 - - - - 6 - Left - - - - 9 - - - - 7 - - - - 6 - Left - - - - 6 - Left - - - - - - - - - - Entry - - - Name - - - - $type = $_.Type - $typefmt = switch ($type) - { - 0 {"ZERO"} - 1 {"A"} - 2 {"NS"} - 5 {"CNAME"} - 6 {"SOA"} - 12 {"PTR"} - 15 {"MX"} - 16 {"TEXT"} - 24 {"SIG"} - 25 {"KEY"} - 28 {"AAAA"} - 30 {"NXT"} - 33 {"SRV"} - 35 {"NAPTR"} - 37 {"CERT"} - 39 {"DNAME"} - 41 {"OPT"} - 43 {"DS"} - 46 {"RRSIG"} - 47 {"NSEC"} - 48 {"DNSKEY"} - 49 {"DHCID"} - 50 {"NSEC3"} - 51 {"NSEC3PARAM"} - 255 {""} - default {$type} - } - return $typefmt - - - - - $status = $_.Status - $statusfmt = switch ($status) - { - 0 {"Success"} - 1460 {"Timeout"} - 9002 {"ServFail"} - 9003 {"NotExist"} - 9501 {"NoRecords"} - default {$status} - } - return $statusfmt - - - - - $section = $_.Section - $sectionfmt = switch ($section) - { - 0 {""} - 1 {"Answer"} - 2 {"Authority"} - 3 {"Additional"} - default {$section} - } - return $sectionfmt - - - - - $ttl = $_.TimeToLive - $ttlfmt = switch ($ttl) - { - 0 {""} - default {$ttl} - } - return $ttlfmt - - Right - - - - $length = $_.DataLength - $lengthfmt = switch ($length) - { - 0 {""} - default {$length} - } - return $lengthfmt - - Right - - - Data - - - - - - - - DnsClientCacheListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientCache - - - - - - - - Entry - - - - Name - - - - - $type = $_.Type - $typefmt = switch ($type) - { - 0 {"ZERO"} - 1 {"A"} - 2 {"NS"} - 5 {"CNAME"} - 6 {"SOA"} - 12 {"PTR"} - 15 {"MX"} - 16 {"TEXT"} - 24 {"SIG"} - 25 {"KEY"} - 28 {"AAAA"} - 30 {"NXT"} - 33 {"SRV"} - 35 {"NAPTR"} - 37 {"CERT"} - 39 {"DNAME"} - 41 {"OPT"} - 43 {"DS"} - 46 {"RRSIG"} - 47 {"NSEC"} - 48 {"DNSKEY"} - 49 {"DHCID"} - 50 {"NSEC3"} - 51 {"NSEC3PARAM"} - 255 {""} - default {$type} - } - return $typefmt - - - - - - $status = $_.Status - $statusfmt = switch ($status) - { - 0 {"Success"} - 1460 {"Timeout"} - 9002 {"ServFail"} - 9003 {"NotExist"} - 9501 {"NoRecords"} - default {$status} - } - return $statusfmt - - - - - - $section = $_.Section - $sectionfmt = switch ($section) - { - 0 {""} - 1 {"Answer"} - 2 {"Authority"} - 3 {"Additional"} - default {$section} - } - return $sectionfmt - - - - - - $ttl = $_.TimeToLive - $ttlfmt = switch ($ttl) - { - 0 {""} - default {$ttl} - } - return $ttlfmt - - - - - - $length = $_.DataLength - $lengthfmt = switch ($length) - { - 0 {""} - default {$length} - } - return $lengthfmt - - - - - Data - - - - - - - - - DnsClientGlobalSettingListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientGlobalSetting - - - - - - - - UseSuffixSearchList - - - - SuffixSearchList - - - - UseDevolution - - - - DevolutionLevel - - - - - - - - DnsClientGlobalSettingTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientGlobalSetting - - - - - - - - - - - - - - - - - - - - - UseSuffixSearchList - - - SuffixSearchList - - - UseDevolution - - - DevolutionLevel - - - - - - - - - DnsClientServerAddressTableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientServerAddress - - - - - - 28 - - - - 9 - Left - - - - 7 - Left - - - - - - - - - - - - $alias = $_.InterfaceAlias - $width = 28 - $out = $alias - if ($alias.Length -gt $width) - { - $idpresent = $alias -match "(\d+$)" - if ($idpresent -and ($width -gt ($matches[0].length + 3))) - { - $base = $alias.substring(0, $width - ($matches[0].length + 3)) - $out = $base + "..." + $matches[0] - } - } - return $out - - - - InterfaceIndex - Right - - - - $family = $_.AddressFamily - $familyfmt = switch ($family) - { - 2 {"IPv4"} - 23 {"IPv6"} - default {$family} - } - return $familyfmt - - - - ServerAddresses - - - - - - - - DnsClientServerAddressListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientServerAddress - - - - - - - - InterfaceAlias - - - - InterfaceIndex - - - - - $family = $_.AddressFamily - $familyfmt = switch ($family) - { - 2 {"IPv4"} - 23 {"IPv6"} - default {$family} - } - return $familyfmt - - - - - ServerAddresses - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Types.ps1xml b/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Types.ps1xml deleted file mode 100644 index 3703662..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/DnsConfig.Types.ps1xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClient - - - Suffix - ConnectionSpecificSuffix - - - SuffixSearchList - ConnectionSpecificSuffixSearchList - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientCache - - - TTL - TimeToLive - - - - - - Microsoft.Management.Infrastructure.CimInstance#MSFT_DNSClientServerAddress - - - Address - ServerAddresses - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClient.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClient.cdxml deleted file mode 100644 index a3eab88..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClient.cdxml +++ /dev/null @@ -1,95 +0,0 @@ - - - - 1.0.0 - DnsClient - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientCache.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientCache.cdxml deleted file mode 100644 index 9f9960f..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientCache.cdxml +++ /dev/null @@ -1,96 +0,0 @@ - - - - 1.0.0 - DnsClientCache - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientGlobalSetting.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientGlobalSetting.cdxml deleted file mode 100644 index 80335fe..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientGlobalSetting.cdxml +++ /dev/null @@ -1,31 +0,0 @@ - - - - 1.0.0 - DnsClientGlobalSetting - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientServerAddress.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientServerAddress.cdxml deleted file mode 100644 index 2c327a8..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/MSFT_DnsClientServerAddress.cdxml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 1.0.0 - DnsClientServerAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTGlobal_v1.0.0.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTGlobal_v1.0.0.cdxml deleted file mode 100644 index db55738..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTGlobal_v1.0.0.cdxml +++ /dev/null @@ -1,116 +0,0 @@ - - - - 1.0.0 - DnsClientNrptGlobal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EnableOnNetworkID - EnableAlways - Disable - DisableDA - - - - - - - - - - - - - - - - - Disable - FallbackSecure - FallbackUnsecure - FallbackPrivate - - - - - - - - - - Disable - QueryIPv6Only - QueryBoth - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTRule_v1.0.0.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTRule_v1.0.0.cdxml deleted file mode 100644 index de6f322..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNRPTRule_v1.0.0.cdxml +++ /dev/null @@ -1,382 +0,0 @@ - - - - 1.0.0 - DnsClientNrptRule - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - None - Low - Medium - High - - - - - - - - - - - - - - - - - - - - - - - None - Low - Medium - High - - - - - - - - - - - - Disable - Utf8WithMapping - Utf8WithoutMapping - Punycode - - - - - - - - - - - - - - - - - - - - - - NoProxy - UseDefault - UseProxyName - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - None - Low - Medium - High - - - - - - - - - - - - - - - - - - - - - - - NoProxy - UseDefault - UseProxyName - - - - - - - - - - - - - - - - - - - None - Low - Medium - High - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Disable - Utf8WithMapping - Utf8WithoutMapping - Punycode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNrptPolicy_v1.0.0.cdxml b/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNrptPolicy_v1.0.0.cdxml deleted file mode 100644 index 5b7b6a9..0000000 --- a/newton-cn/bin/v1.0/Modules/DnsClient/PS_DnsClientNrptPolicy_v1.0.0.cdxml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 1.0.0 - DnsClientNrptPolicy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/DnsClient/dnslookup.dll b/newton-cn/bin/v1.0/Modules/DnsClient/dnslookup.dll deleted file mode 100644 index 7c62cc1a964269536a66cd4cd7e1ca7ef60bb971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38912 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 - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/EventTracingManagement/MSFT_EtwTraceProvider - - - Level - - $this.PSBase.CimInstanceProperties['Level'].Value - - - - LevelName - - $constants = @{ - 0 = "WINEVENT_LEVEL_LOG_ALWAYS"; - 1 = "WINEVENT_LEVEL_CRITICAL"; - 2 = "WINEVENT_LEVEL_ERROR"; - 3 = "WINEVENT_LEVEL_WARNING"; - 4 = "WINEVENT_LEVEL_INFO"; - 5 = "WINEVENT_LEVEL_VERBOSE";} - - $level = $this.PSBase.CimInstanceProperties['Level'].Value - - $namedLevel = $constants[[Convert]::ToInt32($level)] - - if ($namedLevel) - { - "{0} ({1})" -f $level, $namedLevel - } - else - { - $level.ToString() - } - - - - MatchAnyKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAnyKeyword'].Value - - - - MatchAllKeyword - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['MatchAllKeyword'].Value - - - - Property - - $this.PSBase.CimInstanceProperties['Property'].Value - - - - EnableProperty - - $constants = @{ - 0x00000001 = "EVENT_ENABLE_PROPERTY_SID"; - 0x00000002 = "EVENT_ENABLE_PROPERTY_TS_ID"; - 0x00000004 = "EVENT_ENABLE_PROPERTY_STACK_TRACE"; - 0x00000008 = "EVENT_ENABLE_PROPERTY_PSM_KEY"; - 0x00000010 = "EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0"; - 0x00000020 = "EVENT_ENABLE_PROPERTY_PROVIDER_GROUP"; - 0x00000040 = "EVENT_ENABLE_PROPERTY_ENABLE_KEYWORD_0"; - 0x00000080 = "EVENT_ENABLE_PROPERTY_PROCESS_START_KEY"; - 0x00000100 = "EVENT_ENABLE_PROPERTY_EVENT_KEY"; - 0x00000200 = "EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE";} - - $enableProperty = $this.PSBase.CimInstanceProperties['Property'].Value - - $constants.Keys | where { $_ -band $enableProperty } | foreach { $constants.Get_Item($_) } - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/EventTracingManagement/MSFT_EtwTraceSession - - - LogFileMode - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['LogFileMode'].Value - - - - LoggingModeNames - - $constants = @{ - 0x00000000 = "EVENT_TRACE_FILE_MODE_NONE"; - 0x00000001 = "EVENT_TRACE_FILE_MODE_SEQUENTIAL"; - 0x00000002 = "EVENT_TRACE_FILE_MODE_CIRCULAR"; - 0x00000004 = "EVENT_TRACE_FILE_MODE_APPEND"; - 0x00000100 = "EVENT_TRACE_REAL_TIME_MODE"; - 0x00000200 = "EVENT_TRACE_DELAY_OPEN_FILE_MODE"; - 0x00000400 = "EVENT_TRACE_BUFFERING_MODE"; - 0x00000800 = "EVENT_TRACE_PRIVATE_LOGGER_MODE"; - 0x00001000 = "EVENT_TRACE_ADD_HEADER_MODE"; - 0x00004000 = "EVENT_TRACE_USE_GLOBAL_SEQUENCE"; - 0x00008000 = "EVENT_TRACE_USE_LOCAL_SEQUENCE"; - 0x00010000 = "EVENT_TRACE_RELOG_MODE"; - 0x01000000 = "EVENT_TRACE_USE_PAGED_MEMORY"; - 0x00000008 = "EVENT_TRACE_FILE_MODE_NEWFILE"; - 0x00000020 = "EVENT_TRACE_FILE_MODE_PREALLOCATE"; - 0x00000040 = "EVENT_TRACE_NONSTOPPABLE_MODE"; - 0x00000080 = "EVENT_TRACE_SECURE_MODE"; - 0x00002000 = "EVENT_TRACE_USE_KBYTES_FOR_SIZE"; - 0x00020000 = "EVENT_TRACE_PRIVATE_IN_PROC"; - 0x00100000 = "EVENT_TRACE_MODE_RESERVED"; - 0x10000000 = "EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING"; - 0x02000000 = "EVENT_TRACE_SYSTEM_LOGGER_MODE"; - 0x80000000 = "EVENT_TRACE_ADDTO_TRIAGE_DUMP"; - 0x00400000 = "EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN"; - 0x00800000 = "EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN"; - 0x08000000 = "EVENT_TRACE_INDEPENDENT_SESSION_MODE"; - 0x04000000 = "EVENT_TRACE_COMPRESSED_MODE"} - - $logfilemode = $this.PSBase.CimInstanceProperties['LogFileMode'].Value - - $constants.Keys | where { $_ -band $logfilemode } | foreach { $constants.Get_Item($_) } - - - - ClockType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.EtwTraceSession.ClockType]($this.PSBase.CimInstanceProperties['ClockType'].Value) - - - - - - Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/EventTracingManagement/MSFT_AutologgerConfig - - - LogFileMode - - "0x{0:X0}" -f $this.PSBase.CimInstanceProperties['LogFileMode'].Value - - - - LoggingModeNames - - $constants = @{ - 0x00000000 = "EVENT_TRACE_FILE_MODE_NONE"; - 0x00000001 = "EVENT_TRACE_FILE_MODE_SEQUENTIAL"; - 0x00000002 = "EVENT_TRACE_FILE_MODE_CIRCULAR"; - 0x00000004 = "EVENT_TRACE_FILE_MODE_APPEND"; - 0x00000100 = "EVENT_TRACE_REAL_TIME_MODE"; - 0x00000200 = "EVENT_TRACE_DELAY_OPEN_FILE_MODE"; - 0x00000400 = "EVENT_TRACE_BUFFERING_MODE"; - 0x00000800 = "EVENT_TRACE_PRIVATE_LOGGER_MODE"; - 0x00001000 = "EVENT_TRACE_ADD_HEADER_MODE"; - 0x00004000 = "EVENT_TRACE_USE_GLOBAL_SEQUENCE"; - 0x00008000 = "EVENT_TRACE_USE_LOCAL_SEQUENCE"; - 0x00010000 = "EVENT_TRACE_RELOG_MODE"; - 0x01000000 = "EVENT_TRACE_USE_PAGED_MEMORY"; - 0x00000008 = "EVENT_TRACE_FILE_MODE_NEWFILE"; - 0x00000020 = "EVENT_TRACE_FILE_MODE_PREALLOCATE"; - 0x00000040 = "EVENT_TRACE_NONSTOPPABLE_MODE"; - 0x00000080 = "EVENT_TRACE_SECURE_MODE"; - 0x00002000 = "EVENT_TRACE_USE_KBYTES_FOR_SIZE"; - 0x00020000 = "EVENT_TRACE_PRIVATE_IN_PROC"; - 0x00100000 = "EVENT_TRACE_MODE_RESERVED"; - 0x10000000 = "EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING"; - 0x02000000 = "EVENT_TRACE_SYSTEM_LOGGER_MODE"; - 0x80000000 = "EVENT_TRACE_ADDTO_TRIAGE_DUMP"; - 0x00400000 = "EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN"; - 0x00800000 = "EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN"; - 0x08000000 = "EVENT_TRACE_INDEPENDENT_SESSION_MODE"; - 0x04000000 = "EVENT_TRACE_COMPRESSED_MODE"} - - $logfilemode = $this.PSBase.CimInstanceProperties['LogFileMode'].Value - - $constants.Keys | where { $_ -band $logfilemode } | foreach { $constants.Get_Item($_) } - - - - ClockType - - [Microsoft.PowerShell.Cmdletization.GeneratedTypes.AutologgerConfig.ClockType]($this.PSBase.CimInstanceProperties['ClockType'].Value) - - - - - diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psd1 b/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psd1 deleted file mode 100644 index 796b508..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psd1 +++ /dev/null @@ -1,45 +0,0 @@ -@{ - GUID = "80CB11CF-96B5-4D48-84BD-F85F65DE78AE" - Author = "Microsoft Corporation" - CompanyName = "Microsoft Corporation" - Copyright = "© Microsoft Corporation. All rights reserved." - ModuleVersion = "1.0.0.0" - PowerShellVersion = '5.1' - HelpInfoUri = "http://go.microsoft.com/fwlink/?linkid=524348" - - NestedModules = @( - 'MSFT_EtwTraceSession_v1.0.cdxml', - 'MSFT_EtwTraceProvider_v1.0.cdxml', - 'MSFT_AutologgerConfig_v1.0.cdxml', - 'EventTracingManagement.psm1') - - FormatsToProcess = @( - 'MSFT_AutologgerConfig_v1.0.format.ps1xml', - 'MSFT_EtwTraceProvider_v1.0.format.ps1xml', - 'MSFT_EtwTraceSession_v1.0.format.ps1xml') - - TypesToProcess = @('EventTracingManagement.Types.ps1xml') - - FunctionsToExport = @( - 'Start-EtwTraceSession', - 'New-EtwTraceSession', - 'Get-EtwTraceSession', - 'Update-EtwTraceSession', - 'Set-EtwTraceSession', - 'Send-EtwTraceSession', - 'Save-EtwTraceSession', - 'Flush-EtwTraceSession', - 'Stop-EtwTraceSession', - 'Remove-EtwTraceSession', - 'Add-EtwTraceProvider', - 'Get-EtwTraceProvider', - 'Set-EtwTraceProvider', - 'Remove-EtwTraceProvider', - 'New-AutologgerConfig', - 'Get-AutologgerConfig', - 'Update-AutologgerConfig', - 'Set-AutologgerConfig', - 'Start-AutologgerConfig', - 'Remove-AutologgerConfig') - CompatiblePSEditions = @('Desktop', 'Core') -} diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psm1 b/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psm1 deleted file mode 100644 index 46c8f6a..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/EventTracingManagement.psm1 +++ /dev/null @@ -1,228 +0,0 @@ -function Start-EtwTraceSession -{ - [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact='Medium')] - - param( - [Parameter(Position=0, - Mandatory=$true)] - [System.String]$Name, - - [Parameter()] - [System.UInt32]$LogFileMode = 0x09000000, - - [Parameter()] - [System.String]$LocalFilePath, - - [Parameter()] - [System.UInt32]$MaximumFileSize, - - [Parameter()] - [System.UInt32]$BufferSize, - - [Parameter()] - [System.UInt32]$MinimumBuffers, - - [Parameter()] - [System.UInt32]$MaximumBuffers, - - [Parameter()] - [System.UInt32]$FlushTimer, - - [Parameter()] - [ValidateSet('Performance','System', 'Cycle')] - [System.String]$ClockType, - - [Parameter()] - [ValidateSet('File','Buffering', 'Sequential', 'Circular')] - [System.String]$FileMode, - - [Parameter()] - [Switch] - $Compress, - - [Parameter()] - [Switch] - $RealTime, - - [Parameter()] - [Switch] - $NonPaged, - - [Parameter()] - [Microsoft.Management.Infrastructure.CimSession]$CimSession - ) - - $mode = $LogFileMode - - if ($FileMode.Length -gt 0) - { - switch($FileMode.ToLowerInvariant()) - { - {($_ -eq "file")} {} - {($_ -eq "buffering")} { $mode = $mode -bor 0x400} - {($_ -eq "sequential")} { $mode = $mode -bor 0x1} - {($_ -eq "circular")} { $mode = $mode -bor 0x2} - } - - $x = $PSBoundParameters.Remove("FileMode") - } - - if ($NonPaged -eq $true) - { - $mode = $mode -bxor 0x01000000 - $x = $PSBoundParameters.Remove("NonPaged") - } - - if ($RealTime -eq $true) - { - $mode = $mode -bor 0x00000100 - $x = $PSBoundParameters.Remove("RealTime") - } - - if ($Compress -eq $true) - { - $mode = $mode -bor 0x04000000 - $x = $PSBoundParameters.Remove("Compress") - } - - if ($mode -ne 0) - { - $PSBoundParameters["LogFileMode"] = $mode - } - - New-EtwTraceSession @PSBoundParameters -} - -function Save-EtwTraceSession -{ - [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact='Medium')] - - param( - [Parameter(Position=0, - Mandatory=$true)] - [System.String]$Name, - - [Parameter(ValueFromPipeLine=$True)] - [System.IO.FileInfo]$OutputFile, - - [Parameter(ValueFromPipeLine=$True)] - [System.IO.DirectoryInfo]$OutputFolder, - - [Parameter()] - [Switch] - $Stop, - - [Parameter()] - [Switch] - $Overwrite, - - [Parameter()] - [Microsoft.Management.Infrastructure.CimSession]$CimSession - ) - - if ($PSBoundParameters.ContainsKey("DeleteAfterSend") -eq $true) - { - $x = $PSBoundParameters.Remove("DeleteAfterSend") - } - - if ($PSBoundParameters.ContainsKey("DestinationFolder") -eq $true) - { - $x = $PSBoundParameters.Remove("DestinationFolder") - } - - $file = "$Name.etl" - $pathSet = 0 - - if ($PSBoundParameters.ContainsKey("CimSession") -eq $true) - { - $session = Get-EtwTraceSession $Name -CimSession $CimSession - } - else - { - $session = Get-EtwTraceSession $Name - } - - if ($session -eq $null) - { - # Error message would have already come from Get-EtwTraceSession - return $null - } - - if ($PSBoundParameters.ContainsKey("OutputFile") -eq $true) - { - $file = $OutputFile.FullName - $pathSet = $pathSet + 1 - $x = $PSBoundParameters.Remove("OutputFile") - } - - if ($PSBoundParameters.ContainsKey("OutputFolder") -eq $true) - { - if (($session.LocalFilePath -ne $null) -and (test-path $session.LocalFilePath)) - { - $existingTrace = get-item $session.LocalFilePath - $file = $existingTrace.Name - } - - $file = join-path $OutputFolder.FullName $file - $pathSet = $pathSet + 1 - $x = $PSBoundParameters.Remove("OutputFolder") - } - - if ($PSBoundParameters.ContainsKey("Overwrite") -eq $true) - { - $x = $PSBoundParameters.Remove("Overwrite") - } - - if ($pathSet -gt 1) - { - throw "Only 1 file parameter can be set" - # TODO: Localize - } - - if ($PSBoundParameters.ContainsKey("CimSession") -eq $true) - { - $exists = get-ciminstance -classname CIM_DataFile -filter ("Name='$file'".replace("\", "\\")) -CimSession $CimSession - if ($exists -ne $null -and $Overwrite -eq $false) - { - throw "Output file already exists. Use -Overwrite to overwrite." - # TODO: Localize - } - } - else - { - $exists = test-path $file - if ($exists -eq $true -and $Overwrite -eq $false) - { - throw "Output file already exists. Use -Overwrite to overwrite." - # TODO: Localize - } - } - - $result = Send-EtwTraceSession -DestinationFolder $file @PSBoundParameters - - if ($result -ne $null -and $result.ReturnValue -ne $null -and ($result.ReturnValue.ToString() -eq "Success")) - { - if ($PSBoundParameters.ContainsKey("CimSession") -eq $true) - { - if ($Stop -eq $true) - { - Remove-EtwTraceSession $Name -CimSession $CimSession - } - - return get-ciminstance -classname CIM_DataFile -filter ("Name='$file'".replace("\", "\\")) -CimSession $CimSession - } - else - { - if ($Stop -eq $true) - { - Remove-EtwTraceSession $Name - } - - return get-item $file - } - } - else - { - return $null - } -} diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.cdxml deleted file mode 100644 index 0d3c4c0..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.cdxml +++ /dev/null @@ -1,187 +0,0 @@ - - - - 1.1.0.0 - AutologgerConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.format.ps1xml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.format.ps1xml deleted file mode 100644 index 885b203..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_AutologgerConfig_v1.0.format.ps1xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - MSFT_AutologgerConfig_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_AutologgerConfig - - - - - - - Name - - - BufferSize - - - ClockType - - - DisableRealtimePersistence - - - FileCount - - - LocalFilePath - - - FileMax - - - FlushTimer - - - Guid - - - LoggingModeNames - - - MaximumFileSize - - - MaximumBuffers - - - MinimumBuffers - - - Start - - - InitStatus - - - - - - - - MSFT_AutologgerConfig_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_AutologgerConfig - - - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - 15 - - - - - - - Name - - - BufferSize - - - ClockType - - - DisableRealtimePersistence - - - FileCount - - - LocalFilePath - - - FileMax - - - FlushTimer - - - Guid - - - LoggingModeNames - - - MaximumFileSize - - - MaximumBuffers - - - MinimumBuffers - - - Start - - - InitStatus - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.cdxml deleted file mode 100644 index 7303a1e..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.cdxml +++ /dev/null @@ -1,137 +0,0 @@ - - - - 1.0.0.0 - EtwTraceProvider - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.format.ps1xml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.format.ps1xml deleted file mode 100644 index 4559f8c..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceProvider_v1.0.format.ps1xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - MSFT_EtwTraceProvider_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_EtwTraceProvider - - - - - - - SessionName - - -not [System.String]::IsNullOrEmpty($_.SessionName) - - - - AutologgerName - - -not [System.String]::IsNullOrEmpty($_.AutologgerName) - - - - Guid - - - LevelName - - - - MatchAnyKeyword - - - MatchAllKeyword - - - EnableProperty - - - - - - - - MSFT_EtwTraceProvider_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_EtwTraceProvider - - - - - 10 - - - 15 - - - 15 - - - 10 - - - - 15 - - - 15 - - - - - - - Guid - - - SessionName - - - AutologgerName - - - LevelName - - - MatchAnyKeyword - - - MatchAllKeyword - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.cdxml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.cdxml deleted file mode 100644 index 28fb5c7..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.cdxml +++ /dev/null @@ -1,156 +0,0 @@ - - - - 1.1.0.0 - EtwTraceSession - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.format.ps1xml b/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.format.ps1xml deleted file mode 100644 index a55eda9..0000000 --- a/newton-cn/bin/v1.0/Modules/EventTracingManagement/MSFT_EtwTraceSession_v1.0.format.ps1xml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - MSFT_EtwTraceSession_ListView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_EtwTraceSession - - - - - - - Name - - - LoggingModeNames - - - LocalFilePath - - - MaximumFileSize - - - MinimumBuffers - - - MaximumBuffers - - - FlushTimer - - - ClockType - - - - - - - - MSFT_EtwTraceSession_TableView - - Microsoft.Management.Infrastructure.CimInstance#MSFT_EtwTraceSession - - - - - 10 - - - 15 - - - 15 - - - 14 - - - 14 - - - 10 - - - 9 - - - 16 - - - - - - - Name - - - LocalFilePath - - - MaximumFileSize - - - MinimumBuffers - - - MaximumBuffers - - - FlushTimer - - - ClockType - - - LoggingModeNames - - - - - - - - diff --git a/newton-cn/bin/v1.0/Modules/ISE/ise.psd1 b/newton-cn/bin/v1.0/Modules/ISE/ise.psd1 deleted file mode 100644 index 95765f8..0000000 --- a/newton-cn/bin/v1.0/Modules/ISE/ise.psd1 +++ /dev/null @@ -1,16 +0,0 @@ -@{ -GUID = 'bae93d8e-782c-4a23-b87f-8699bfc17ee0' -Author = 'Microsoft Corporation' -CompanyName = 'Microsoft Corporation' -Copyright = '(c) Microsoft Corporation. All rights reserved.' -ModuleVersion = '1.0.0.0' -PowerShellVersion = '5.1' -CLRVersion='4.0' -RootModule='ISE.psm1' -FunctionsToExport='New-IseSnippet', 'Import-IseSnippet', 'Get-IseSnippet' -CmdletsToExport = @() -AliasesToExport = @() -HelpInfoUri='https://go.microsoft.com/fwlink/?linkid=390780' -PowerShellHostName = 'Windows PowerShell ISE Host' -CompatiblePSEditions = @('Desktop') -} diff --git a/newton-cn/bin/v1.0/Modules/ISE/ise.psm1 b/newton-cn/bin/v1.0/Modules/ISE/ise.psm1 deleted file mode 100644 index d957d77..0000000 --- a/newton-cn/bin/v1.0/Modules/ISE/ise.psm1 +++ /dev/null @@ -1,185 +0,0 @@ -# .Link -# https://go.microsoft.com/fwlink/?LinkID=225298 -# .ExternalHelp ISE.psm1-help.xml -function New-IseSnippet -{ - [CmdletBinding()] - param( - - [Parameter(Mandatory=$true, Position=0)] - [String] - $Title, - - [Parameter(Mandatory=$true, Position=1)] - [String] - $Description, - - [Parameter(Mandatory=$true, Position=2)] - [String] - $Text, - - [String] - $Author, - - [Int32] - [ValidateRange(0, [Int32]::MaxValue)] - $CaretOffset = 0, - - [Switch] - $Force - ) - - Begin - { - $snippetPath = Join-Path (Split-Path $profile.CurrentUserCurrentHost) "Snippets" - - if($Text.IndexOf("]]>") -ne -1) - { - throw [Microsoft.PowerShell.Host.ISE.SnippetStrings]::SnippetsNoCloseCData -f "Text","]]>" - } - - if (-not (Test-Path $snippetPath)) - { - $null = mkdir $snippetPath - } - } - - End - { - $snippet = @" - - - -