gpt4 book ai didi

PowerShell Add-WindowsFeature 无法识别

转载 作者:行者123 更新时间:2023-12-03 14:11:06 30 4
gpt4 key购买 nike

首先感谢您对此进行审查。

我基本上有一个第三方代理软件,它允许我将 PowerShell 作为 LocalSystem 执行。这使我可以在没有 WinRM 等的情况下轻松运行远程 PowerShell 命令。

我遇到的问题是在某些服务器上我无法执行 get-WindowsFeature 或 Add-WindowsFeature。

我试图实现这一目标的一个例子是:

Import-Module ServerManager;
Get-WindowsFeature;

输出如下:
The term 'Get-WindowsFeature' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

如果我在 PowerShell 窗口中键入相同的命令,或者直接调用 PowerShell.exe,它会返回。我试图弄清楚我们在应用程序中没有做的事情,但我是这里最熟悉 PowerShell 的人。

我需要做些什么来加载这些 cmdlet 吗?奇怪的是,Get-Module 没有显示任何内容。

谢谢!

作为对 JBSmith 的回应:

Yessir - 看起来像 2.0。这是您提到的命令的结果
>Name                           Value                                            
>---- -----
>CLRVersion 2.0.50727.6407
>BuildVersion 6.1.7600.16385
>PSVersion 2.0
>WSManStackVersion 2.0
>PSCompatibleVersions {1.0, 2.0}
>SerializationVersion 1.1.0.1
>PSRemotingProtocolVersion 2.1
>
>Name : AppLocker
>Name : Appx
>Name : BestPractices
>Name : BitsTransfer
>Name : BranchCache
>Name : CimCmdlets
>Name : DirectAccessClientComponents
>Name : Dism
>Name : DnsClient
>Name : International
>Name : iSCSI
>Name : IscsiTarget
>Name : ISE
>Name : Kds
>Name : Microsoft.PowerShell.Diagnostics
>Name : Microsoft.PowerShell.Host
>Name : Microsoft.PowerShell.Management
>Name : Microsoft.PowerShell.Security
>Name : Microsoft.PowerShell.Utility
>Name : Microsoft.WSMan.Management
>Name : MMAgent
>Name : MsDtc
>Name : NetAdapter
>Name : NetConnection
>Name : NetLbfo
>Name : NetQos
>Name : NetSecurity
>Name : NetSwitchTeam
>Name : NetTCPIP
>Name : NetworkConnectivityStatus
>Name : NetworkTransition
>Name : MSFT_NfsMappedIdentity
>Name : NFS
>Name : PKI
>Name : PrintManagement
>Name : PSDiagnostics
>Name : PSScheduledJob
>Name : PSWorkflow
>Name : PSWorkflowUtility
>Name : RemoteDesktop
>Name : ScheduledTasks
>Name : SecureBoot
>Name : ServerCore
>Name : ServerManager
>Name : ServerManagerTasks
>Name : SmbShare
>Name : SmbWitness
>Name : Storage
>Name : TroubleshootingPack
>Name : TrustedPlatformModule
>Name : UserAccessLogging
>Name : VpnClient
>Name : Wdac
>Name : Whea
>Name : WindowsDeveloperLicense
>Name : WindowsErrorReporting
>Name : AWSPowerShell

我还注意到 GCM | ? { $_.ModuleName -eq 'ServerManager' } 当我在那里运行它时什么都不返回,但是通过一个普通的 PS 窗口它会按预期返回一个命令列表。

最佳答案

这可能是因为 PowerShell 脚本是从 PowerShell 的 32 位实例启动的。 ServerManager 命令仅适用于 64 位版本的 PowerShell。见:Can't access ServerManager module via PowerShell

--编辑-添加到 jbsmith 的评论中--

额外的尝试:

当您运行 Get-Command cmdlt 时:

gcm | ? { $_.ModuleName -eq 'ServerManager' }

它不会返回任何内容,因为尚未加载 ServerManager 模块。

尝试运行它。它将列出所有要加载的可用模块:
Get-Module -ListAvailable | ? { $_.Name -eq 'ServerManager' }

要尝试的另一件事是使用“强制”选项(重新导入模块及其成员,即使模块或其成员具有只读访问模式):
Import-Module ServerManager -Force;
Get-WindowsFeature;

关于PowerShell Add-WindowsFeature 无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686302/

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