次のコードはPowerShellでは実行できますが、PowerShell(x86)では同じコンピュータで実行できません。Get-WmiObjectはPowerShell(x86)では実行できませんが、PowerShellで
Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement13" -Class ServerSettingsGeneralFlag -Filter "FlagName='ForceEncryption'"
例外:@AnsgarWiechersが言ったように
At line:1 char:1 + Get-WmiObject -Namespace "root\Microsoft\SqlServer\ComputerManagement ... + CategoryInfo : NotSpecified: (:) [Get-WmiObject], FileNotFoundException + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
それぞれの名前空間またはクラスが32ビット環境に存在しないと思われます。名前空間は以下のように列挙できます: 'function List-WmiNamespaces {Get-WmiObject -Namespace $ args [0] -Class '__namespace' | ForEach-Object {$ ns = '{0} \ {1}' -f $ _.__名前空間、$ _。名前; $ ns;リスト-WmiNamespaces $ ns}}; List-WmiNamespaces 'root \ microsoft''、および次のような名前空間内のクラス: 'Get-WmiObject -Namespace' root \ Microsoft \ SqlServer '-List | Select-Object -Expand Name'を選択します。 –
私は確かに64ビットSQL Serverをインストールしました。 しかし、これら2つのスクリプトは、64ビットPowerShellと32ビットPowerShellの両方で同じ結果を得ています。 "root \ Microsoft \ SqlServer \ ComputerManagement13"とServerSettingsGeneralFlagの両方が存在します。 –