L'accès PsExec est refusé

11

J'utilise psexec.exepour exécuter des programmes dans un contexte de sécurité différent. Cependant, les programmes démarrent mais il ne semble pas fonctionner dans le contexte de sécurité spécifié.

Dans sa forme minimale:

psexec -u wsadmin -p password cmd

Démarre une nouvelle fenêtre cmd si je tape dans cette fenêtre whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

Comme vous pouvez le voir, je suis définitivement l'autre utilisateur. Et je peux confirmer que cet utilisateur est membre du "groupe Administrateurs"

C:\Windows\system32>mkdir test
Access is denied.

Si j'utilise des runas avec l'utilisateur spécifié, cela fonctionne comme supposé. Mais je dois fournir le mot de passe sur la ligne de commande.

Tuim
la source

Réponses:

10

Sous Windows Vista et versions ultérieures, si l'UAC est activé, un processus lancé par psexec- même lorsqu'il est exécuté à partir d'un compte d'administrateur - doit avoir son jeton d'élévation défini afin d'obtenir des privilèges complets. Cela peut être fait en passant l' -hattribut dans la psexecligne de commande. Donc, vous changeriez votre commande en:

psexec -h -u wsadmin -p password cmd

Pour plus d'informations, exécutez psexec /?:

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.
nhinkle
la source
9
Malheureusement, cela me donne "Impossible d'installer l'accès au service PSExec est refusé"
Tuim
Exécutez-vous également la commande initiale à partir d'une invite de commandes élevée ou l'utilisez-vous en tant que run-as local?
nhinkle
La commande d'origine exécute un contexte de sécurité «utilisateur». Je ne peux pas utiliser run-as pour des raisons spécifiques.
Tuim
1
Utilisez "Invite de commandes élevée" ou "Invite PowerShell élevée" via "Démarrer> Tapez" PowerShell "> Cliquez avec le bouton droit sur" Windows PowerShell "> Sélectionnez" Exécuter en tant qu'administrateur ", puis exécutez la commande psexec, y compris l' -hoption.
Underverse
@Underverse, Est-il possible d'utiliser psexec à partir de l'utilisateur CMD, pas à partir de l'administrateur PS? Je veux utiliser psexec exactement pour la transition CMD dans le contexte administrateur :)
Suncatcher
5

Il m'a fallu des heures pour trouver un moyen de travailler à PsExecentre deux ordinateurs Windows 7 avec l' utilisateur non-Admin à partir PsExec... Désactivation de l' UAC ( EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) n'a pas fonctionné, en éteignant les Firewalls n'a pas fonctionné ...

Ici, j'ai trouvé la méthode de travail - merci JelmerS: (Les informations de PSexec ne se connectent pas à la machine en utilisant le nom d'utilisateur et le mot de passe fournis )

En effet, psexecessaie toujours d'accéder au ADMIN$partage avec vos informations d'identification locales, avant d'exécuter votre commande en tant qu'autre utilisateur. Selon ce fil, vous pouvez mettre en cache les informations d'identification avant d'exécuter psexec:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE
Peter Feldhammer
la source
Remarque - Si vous ne souhaitez pas que votre mot de passe figure dans l'historique de la ligne de commande, vous pouvez simplement utiliser / pass sans mot de passe et vous serez invité à en saisir un.
Joe the Coder
1

J'ai trouvé une solution:

Il s'avère que lorsque vous avez activé l'UAC, psexec ne fonctionne pas comme prévu.
Chaque fois qu'il HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAest défini sur 0psexec fonctionne comme prévu.

Tuim
la source
4
L'autre solution qui ne nécessite pas de modifier le registre consiste simplement à ajouter l' -hindicateur à la psexeccommande. Cela lui indique d'exécuter la commande avec le jeton élevé, ce qui équivaut à lancer un processus "en tant qu'administrateur" à partir du menu contextuel.
nhinkle
5
Réglage EnableLUAde 0désactive Admin Approval Mode, qui est essentiellement le noyau de l' UAC. En conséquence, l'UAC sera désactivé. Source .
Vlastimil Ovčáčík
Pour moi, le drapeau -h n'a pas fonctionné et la désactivation de l'UAC était troublante, mais j'ai trouvé une meilleure alternative
mTorres
0

Voici ce qui a fonctionné pour moi, il ne supprime pas complètement l'UAC mais le désactive pour les administrateurs

Configuration ordinateur \ Paramètres Windows \ Paramètres de sécurité \ Stratégies locales \ Options de sécurité \ Contrôle de compte d'utilisateur: exécuter tous les administrateurs en mode d'approbation administrateur - Désactivé

cristobalhernandez
la source
Ce qui n'est pas vraiment une bonne idée. De plus, en quoi est-ce une amélioration par rapport aux autres solutions disponibles?
Seth