Ne pouvez pas utiliser Get-Service –nom de l'ordinateur sur l'ordinateur distant
J'ai un windows 2003 zone d'installation avec virtual box et je ne peux pas powershell pour travailler avec elle.
J'ai essayer sur ma machine windows 7
Get-Service –ComputerName myserver
Je serai de retour
Get-Service : Cannot open Service Control Manager on computer 'myserver'. This operation might require other privileges.
At Script1.ps1:2 char:4
+ gsv <<<< -cn myserver
+ CategoryInfo : NotSpecified: (:) [Get-Service], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetServiceCommand
En cherchant, j'ai trouvé que je devrais essayer de l'utiliser Enable-PSRemoting
.
Je l'ai fait et maintenant quand j'essaye de l'utiliser je obtenir
WinRM est déjà configuré pour recevoir des requêtes sur cette machine. WinRM
déjà est mis en place pour la gestion à distance sur cet ordinateur.
Mais j'obtiens toujours la même erreur. Est-ce parce que je suis en utilisant une machine virtuelle? J'ai installé le système d'exploitation virtuel sur mon domaine et je peux même utiliser mon compte AD informations d'identification pour vous connecter.
Je peux obtenir d'autres informations.
Donc c'est pas comme si je ne peux pas me connecter avec powershell.
Ya pas sûr que je suis allé à cet article mais je reçois "Le serveur RPC n'est pas disponible" tout ce que j'ai essayé jusqu'à présent comme ayant échoué à se débarrasser de cette erreur.
Pare-feu est actif sur le serveur? avez-vous essayé avec un pare-feu?
Ya pare-feu est désactivé. J'ai fait tourné sur les deux ordinateurs.
J'ai même de votre question, si je lance powershell avec l'utilisateur sans informations d'identification d'administration de serveur distant. Avez-vous essayez d'exécuter powershell avec le domaine d'identification d'administrateur ou au moins le mettre dans "administrateurs" groupe local de serveur distant de votre utilisateur de domaine? cela fera l'affaire.
OriginalL'auteur chobo2 | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
Avec PowerShell V2 vous avez deux approches pour les commandes à distance.
Commandes de contrôle à distance intégrés :
Un petit ensemble de commandes PowerShell v2 ont un
-ComputerName
paramètre vous permet de spécifier la cible de la machine pour accéder à.Ces commandes faire leur propre remoting, soit parce que l'infrastructure sous-jacente prend déjà en charge l'accès distant ou ils abordent des scénarios qui sont d'une importance particulière pour la gestion du système. Elles sont construites sur le haut de DCOM et, sur le point d'accès, vous pouvez les utiliser lorsque vous pouvez établir une session avec la machine distante avec des commandes comme
NET.exe
ouPSExec.exe
.Vous essayez d'utiliser l'un d'eux et vous avez un problème avec les informations d'identification (
-cred
paramètre), parce que votre jeton d'identification ne peuvent pas être utilisés pour établir une session admin de la machine distante.Le PowerShell remoting sous-système :
Avant de pouvoir utiliser PowerShell remoting pour accéder à un ordinateur distant, le service d'accès distant sur l'ordinateur doit être explicitement activé. Vous le faites à l'aide de la
Enable-PSRemoting
applet de commande. Si vous travaillez en groupe de travail, vous devez également activer le serveur pour entrer sur votre ordinateur client avec cette commande (sur votre ordinateur client en tant qu'administrateur):Ensuite, vous allez utiliser
New-PSSession
Applet de commande (avec-computername
et-credentials
) pour créer un objet de session. PuisInvoke-Command
(avec-session
et-scriptblock
) applet de commande vous permet, à distance, de l'invoquer un scriptblock sur un autre ordinateur. C'est l'élément de base pour la plupart des fonctionnalités de contrôle à distance. Vous pouvez également utiliser la touche Entrée-PSSession pour établir un interactive SSL (comme) ligne de commande PowerShell avec le serveur.Lien utile : Pour le profane guide de PowerShell 2.0 remoting
Test ceci :
Quand je fais cela. Entrez-PSSession-ComputerName monserveur Set-Service-Name 'IISAdmin' Nom -sttus "interrompu". Elle fonctionne. J'ai essayé ce juste dans une console powershell. Donc, dois-je toujours faire cela? dans mes scripts j'écris? Si oui pourquoi certains ordinateurs n'ont pas besoin de cela et d'autres faire. Comme vous pouvez le voir je suis très confus.
Non ! Vous devez créer une session avec le Nouveau-PSSession, puis utiliser la Commande Invoke-command -session yoursession -scriptblock {votre code}. Veuillez lire attentivement la doc !
Donc, je voudrais juste faire une session puis utiliser la commande invoke-command. Je suppose que comme vous l'avez dit il y a seulement un nombre limité de commandes qui prennent en charge -ComputerName donc je vais probablement avoir à faire une session dans mon script que j'ai fais. Je ne comprends toujours pas pourquoi -ComputerName ne fonctionne pas.
De toute façon autour de pas à l'aide de scriptblock ainsi? Je suis en train de regarder et il semble tout à fait désordonnée.
OriginalL'auteur JPBlanc
Si il est toujours important, voici ma solution:
Je suis un utilisateur non privilégié appelé "usser" qui veut powershell(v2) l'accès distant à partir d'Un client vers le serveur B.
Suit:
Vient maintenant la partie intéressante:
quand tout devrait bien se passer, il sera similaire ressemble à ceci :
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;S-1-5-21-4233383628-1788409597-1873130553-1161)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
Espère que vous apprécierez ce que peu compliqué de la solution de contournement.
OriginalL'auteur scusi marcus
La visualisation et la manipulation de services nécessite des privilèges d'administrateur sur l'ordinateur cible.
J'ai été en mesure de reproduire votre message d'erreur en tentant d'exécuter
Get-Service -ComputerName MyServer
tout en étant connecté en tant que compte d'utilisateur qui ne dispose pas de droits d'administration sur le serveur en question.Vous pouvez résoudre ce soit par l'octroi de l'utilisateur du poste de travail compte des droits d'administrateur sur le serveur cible ou par la création d'un groupe local sur le serveur et d'octroi de l'invocation des privilèges pour les membres de ce groupe. Si vous souhaitez faire le dernier, voir l'article suivant.
msgoodies: à l'Aide d'un PS Session sans avoir les Autorisations Administratives
Sur le serveur, exécutez
net localgroup Administrators
à la liste des administrateurs local sur le serveur.J'ai juste eu la chance de le vérifier maintenant(la vm est sur mon ordinateur de travail). Je suis un admin donc je devrais avoir les autorisations correctes. Je suppose que c'est encore un autre problème.
OriginalL'auteur Tumba
Je sais que ce n'est pas la réponse idéale à cette question, mais j'ai eu un problème similaire en essayant d'utiliser PowerShell pour parler à un Windows 7 boîte. S'avère, WMI n'avait pas été installé avec le natif PSv2 qui vient avec Win7.
Dès que j'ai installé la v3 dans le cadre de la WMI 3.0 paquet, le problème est résolu de lui-même. Je te suggère de s'assurer que tous les services WMI sont en cours d'exécution sur votre serveur. Sauf si vous avez des conflits, je recommande aussi la mise à niveau WMI 3.0.
OriginalL'auteur user2977402
Bâtiment sur @scusi marcus brillante réponse ici:
Disons que je suis un privilégié/limitée de l'utilisateur appelé 'user1' qui veut powershell(v2+) accès distant à partir de l'ordinateur client à Un serveur cible B.
Suit:
enable-psremoting
. Accepter plusieurs O/N boîte de dialogue de confirmations ou d'autre courir avec-force
commutateur.sc sdshow scmanager
. Copiez le SDDL de sortie. Peut ressembler à quelque chose comme ceci:D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
wmic useraccount where name='user1' get sid
)(A;;KA;;;*SID*)
où *SID* le SID de l'utilisateur déterminé à l'étape 5. L'insérer quelque part dans un lieu avant laS:
partie de la chaîne SDDL récupéré à l'étape 4. Alors maintenant, vous devriez avoir une chaîne à la recherche de quelque chose comme ceci:D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;S-1-5-21-4233383628-1788409597-1873130553-1161)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
sc sdset scmanager
suivi par notre nouveau modifié chaîne SDDL. Ainsi, l'intégralité de la commande devrait ressembler à quelque chose comme ceci:sc sdset scmanager D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;S-1-5-21-4233383628-1788409597-1873130553-1161)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
Vous devriez maintenant être en mesure d'accéder à distance au Service Control Manager sur le serveur distant en étant connecté à la machine client Un "user1".
Sur l'ordinateur client, vous pouvez constater que lorsque vous exécutez
Get-Service –ComputerName remoteserver
pas tous les services sont répertoriés. Vous devrez peut-être répéter le processus ci-dessus (à partir de l'étape 4) pour un service spécifique que vous avez besoin d'accès à distance, mais qui n'est pas répertorié dans votreGet-Service
de sortie sur la machine cliente A. Par exemple, si le sqlserveragent service n'est pas répertorié (mais vous savez qu'il est présent sur le serveur cible), vous pouvez de nouveau vous connecter à targetserver B et exécutersc sdshow
mais cette fois non pas pour scmanager mais pour le sqlserveragent de service, de sortesc sdshow sqlserveragent
. Vous recevoir encore quelques SDDL de sortie qui doivent être manipulés comme ci-dessus. À ce stade, il peut être intéressant d'en apprendre plus sur SDDL (Google - ce lien a été utile pour moi), la principale mise en garde de regarder pour leD:
etS:
des portions de la chaîne SDDL et assurez-vous de ne pas jouer avec leS:
partie.ConvertFrom-SDDLString <SDDLstring>
OriginalL'auteur Baodad