PowerShell Add-WindowsFeature non reconnu
Merci tout d'abord pour l'examen de cette.
J'ai essentiellement eu un tiers de l'agent logiciel qui me permet d'exécuter PowerShell en tant que LocalSystem. Cela me permet de facilement exécuter à distance des commandes PowerShell sans WinRM etc.
Le problème que je suis en cours d'exécution en est que sur certains serveurs, je ne suis pas en mesure d'effectuer get-WindowsFeature ou Add-WindowsFeature.
Un exemple de la façon dont je suis en train d'y parvenir est ici:
Import-Module ServerManager;
Get-WindowsFeature;
La sortie est en tant que tel:
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.
Si je tape ces mêmes commandes dans une fenêtre PowerShell, ou appel PowerShell.exe directement, elle renvoie. Je suis à essayer de comprendre ce que nous ne sommes pas en train de faire au sein de l'application, mais je suis plus personne familière avec PowerShell ici.
Est-il quelque chose de spécial que je dois faire pour charger ces applets de commande? Obtenez-le Module ne pas montrer quoi que ce soit, bizarrement.
Merci!
En réponse à JBSmith:
Yessir - ressemble 2.0. Voici les résultats des commandes que vous avez mentionné
>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
J'ai aussi remarqué que GCM | ? { $_.ModuleName -eq 'ServerManager' } retourne rien quand je le lance par là, mais dans le cadre d'un PS de la fenêtre elle renvoie une liste de commandes que prévu.
OriginalL'auteur BeastianSTi | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
C'est probablement parce que le script PowerShell est lancé à partir de 32 bits instance de PowerShell. Le ServerManager commandes sont uniquement disponibles à partir de la version 64 bits de PowerShell. Voir: Ne peut pas accéder à ServerManager module via PowerShell
--Edit - pour ajouter À jbsmith commentaires---
Des choses à essayer:
Lors de l'exécution de la Commande Get-command cmdlt:
Il sera de retour rien parce que le ServerManager module n'a pas été chargé.
L'essayer à la place. C'est la liste de tous les modules disponibles à la charge:
Autre chose à faire est d'essayer d'utiliser l'option "Force" (Re-importation d'un module et de ses membres, même si le module ou ses membres ont un accès en mode de lecture seule):
import-module ServerManager; get-module
Aussi, cette commande est revenue indiquant qu'il est en cours d'exécution 64 bits:[System.Runtime.InterOpServices.Marshal]::SizeOf([System.IntPtr]) returned 8
Ok. Voir la réponse ci-dessus pour les modifications de l'essayer
Get-Module -ListAvailable | ? { $_.Name -eq 'ServerManager' }
au lieuPour Windows 10, j'ai eu à installer "Outils d'Administration de Serveur Distant pour Windows 10", comme dans cette réponse sur le Serveur Faute: serverfault.com/a/831836/420795
OriginalL'auteur HAL9256
Question a fini par être que les métadonnées pour ServerManager a été de 3,0 sur ces serveurs, encore développés exe pour appeler des commandes PowerShell a été seule la version 2.0. Lorsqu'il a essayé d'importer les modules, les erreurs de schéma sur les métadonnées ont été retournés, mais l'EXE n'a pas les rediriger vers la sortie standard, donc pas de réponse.
OriginalL'auteur BeastianSTi