web-dev-qa-db-fra.com

PSEXEC, erreurs d'accès refusé

Pendant que j'utilise PSEXEC.exe, l'erreur "Accès refusé" apparaît sur les systèmes distants.

Une idée sur la façon de résoudre ce problème?

49
Pax

Bonjour, je mets ici un résumé de nombreuses sources en ligne proposant diverses solutions pour "l'accès est refusé": La plupart des informations sont disponibles ici (y compris les conditions requises) - aide interne

  1. en tant que personne mentionnée, ajoutez cette clé reg, puis redémarrez l'ordinateur:

    reg ajouter HKLM\LOGICIEL\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy/t REG_DWORD/d 1/f

    Lisez cet article de la base de connaissances pour savoir ce que cela fait et pourquoi c'est Nécessaire 

  2. Désactiver le pare-feu (remarque - cela vous laissera sans pare-feu protection) 

    netsh advfirewall définit l'état allprofiles

  3. si l'utilisateur cible a un PW vide et que vous ne voulez pas en ajouter, exécutez sur la cible: 

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "LimitBlankPasswordUse" = dword: 00000000

  4. Cela n'a pas fonctionné pour moi, mais je l'ai lu pour d'autres à quelques endroits, Sur cible, exécuter:

    Démarrer -> Exécuter -> secpol.msc -> Stratégies locales -> Options de sécurité -> Accès réseau: partage> et modèle de sécurité pour les comptes locaux> Classique - les utilisateurs locaux s'authentifient eux-mêmes

    si déjà dans 'Classic':

    déplacez-vous sur "Invité uniquement - ..", à partir de la commande élevée Invite gpupdate\force Revenez à 'Classic - .. "à nouveau à partir de la commande élevée Invite gpupdate\force

  5. Celui-ci a résolu mon problème:

    exécuter sur la cible à partir de la commande élevée Invite "Net Use": consultez le tableau de sortie et les partages répertoriés dans la colonne distante (les seuls déconnectés sont supprimés - vous pouvez les essayer tous) run "Net Use [chemin d'accès distant à partir de la liste]]/delete "puis lancez 'Net Use\target\Admin $/user: [nom d'utilisateur]', entrez Invite de demande de mot de passe (si PW vide, appuyez simplement sur Entrée), l'alto devrait fonctionner.

bonne chance, espérons que cela fera gagner du temps à quelqu'un.

61
james

Je viens de résoudre un symptôme identique, en créant la valeur de registre HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy et en la réglant sur 1. Plus de détails sont disponibles ici

16
Ofek Shilon

PsExec a tous les droits d'accès de son lanceur. Il fonctionne sous un contrôle d'accès Windows normal. Cela signifie que celui qui a lancé PsExec (que ce soit vous, le planificateur, un service, etc.) ne dispose pas des droits suffisants sur la machine cible ou la machine cible n'est pas configurée correctement. Les premières choses à faire sont:

  1. Assurez-vous que le lanceur de PsExec est familier avec la machine cible, via le domaine ou en ayant le même utilisateur et le même mot de passe définis localement sur les deux machines.
  2. Utilisez des arguments de ligne de commande pour spécifier un utilisateur connu de la machine cible (-u utilisateur -p mot de passe).

Si cela ne résout pas votre problème, assurez-vous que la machine cible répond à la configuration minimale requise, spécifiée ici .

11
eran

Cela m'a aidé dans mon cas:

cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
8
akash bhatia

Vous pouvez essayer la commande

Net Use \\computername\ipc$ /user:adminname password

pour obtenir les autorisations d’administrateur sur un PC distant avant d’utiliser psexec.

5
Lim Yee Fatt

J'ai eu le même problème. Et après un travail acharné, j'ai trouvé une solution simple et complète:

  1. J'utilise runas pour exécuter le script dans un compte d'administrateur
  2. J'utilise le paramètre -s dans psExec pour s'exécuter dans un compte système
  3. Dans PsExec, je - me reconnecter avec un compte administrateur
  4. Vous pouvez utiliser & pour lancer plusieurs commandes
  5. N'oubliez pas de remplacer [NOMUTILISATEUR], [MOT DE PASSE], [NOMORDINATEUR], [COMMAND1] et [COMMAND2] par les valeurs réelles.

Le code ressemble à ceci:

runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"


Si vous souhaitez déboguer votre script sur une autre machine, exécutez le modèle suivant:

runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"
4
Henry Ávila

Je viens d'ajouter le paramètre "-с". La copie de Psexec est exécutable sur une machine distante. Donc, cela fonctionne sans erreurs d'accès.

4
Dan

Essayez de définir cette clé sur la machine cible (distante) et redémarrez-la:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001

Voir: http://forum.sysinternals.com/topic10924.html et http://www.brandonmartinez.com/2013/04/24/resolve-access-is-denied-using-psexec- avec un compte administrateur local/

4
Wernight

J'ai trouvé que Sophos n'arrêtait pas de placer psexec.exe dans la section de quarantaine. Une fois que je l'ai autorisé, tout s'est bien passé.

3
UsPeoples

J'ai eu un cas où AV mettait en quarantaine Psexec - devait désactiver le contrôle sur accès

2
b33llz

J'ai trouvé un autre motif d'échec de PSEXEC (et d'autres outils PS) - Si quelque chose (par exemple, un virus ou un cheval de Troie) cache le dossier Windows et/ou ses fichiers, PSEXEC échouera avec une erreur "Accès refusé", PSLIST donnera l'erreur "Objet de performance du processeur introuvable sur" et vous serez laissé dans le noir quant à la raison. 

Vous pouvez RDP dans; Vous pouvez accéder au partage admin $; Vous pouvez visualiser le contenu du lecteur à distance, etc., etc., mais rien n'indique que le ou les fichiers ou dossiers cachés en soient la raison.

Je publierai cette information sur plusieurs pages que je parcourais hier en essayant de déterminer la cause de cet étrange problème, de sorte que vous pourriez le voir ailleurs textuellement - je pensais juste que je mettrais la Parole avant que quelqu'un d'autre ne s'arrache les cheveux par les racines essayant de comprendre pourquoi le compteur de performance a quelque chose à voir avec l'exécution de PSEXEC.

1
Jeff

J'utilise toujours psexec, même sous win 10. Remplacez le psexec.exe dans le dossier win32 de Windows 10 par l'ancienne version pour que vous puissiez utiliser -> J'utilise la version 2.11.0.0. La version Windows 10 que j'utilisais n'exécutait que les fichiers .bat en tant que processus en arrière-plan/masqué sur l'ordinateur distant. Il a fallu une journée entière pour comprendre cela.

Ajouter la clé de registre d'en haut à l'ordinateur distant est également utile:

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
1
tmasher

Sur Windows Server 2012 R2, j'ai eu du mal à m'exécuter à partir d'un compte utilisateur.

psexec -u administrator -p password \\machinename -h -s -d -accepteula cmd.exe

Mais cela fonctionne bien si vous exécutez sans paramètres -h -s. C'est pourquoi j'utilise ceci pour résoudre mon problème:

psexec -accepteula -u administrator -p password \\machinename %PathToLocalUtils%\psexec.exe -h -s -d  cmd.exe
1

Ce qui suit a fonctionné, mais seulement après avoir mis à niveau PSEXEC à la version 2.1 à partir de Microsoft.

[HKEY_LOCAL_MACHINE\LOGICIEL\Microsoft\Windows\CurrentVersion\Policies\System] "LocalAccountTokenFilterPolicy" = dword: 00000001 Voir: http://forum.sysinternals.com/topic10924.html

J'avais une version un peu plus ancienne qui ne fonctionnait pas. Je l'ai utilisé pour faire un peu de travail USMT via Dell Kace, travaillé un régal :)

1
ma034001

Pour quiconque peut tomber sur cela. Une mise à jour de sécurité récente (décembre 2013) de Microsoft Windows sur Windows 7 empêche toute exécution à distance. Voir http://support.Microsoft.com/kb/2893294/en-us

J'ai désinstallé la mise à jour de sécurité en allant dans Panneau de configuration\Programmes\Programmes et fonctionnalités\Mises à jour installées.

Cela a fonctionné juste après.

1
NicL

Je ne pouvais pas accéder aux machines distantes à moins que UAC ne soit désactivé. 

Cela doit être fait localement, à partir du panneau de configuration ou en exécutant ce qui suit via cmd: 

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Alors que UAC est activé, assurez-vous que vous exécutez cmd en tant que administrator .

0
Dmitry

Pour une commande différente, j'ai décidé de changer le réseau de public en travail.
Après avoir essayé d’utiliser à nouveau la commande psexec, cela a fonctionné à nouveau.
Donc, pour que psexec fonctionne, essayez de changer votre type de réseau de public à travail ou à domicile.

0
Omega Wu