2009-07-26 8 views
0

J'essaye d'appeler une commande bash via un compte utilisateur avec PsExec. Cygwin est utilisé, et je suis en train d'exécuter une commande à partir de SQL:Appel de bash depuis PsExec depuis SQL avec xp_cmdshell

exec master..xp_cmdshell 'psexec -u cyg_server -p <pwd> -accepteula "bash script.sh"'; 

Cependant, je reçois l'erreur suivante de psexec:

L'accès est refusé.

PsExec n'a pas pu démarrer bash script.sh:

Toutes les suggestions?

J'utilise SQL 2005, Windows Server 2008 et Cygwin avec les binaires frais

+0

Avez-vous les autorisations db appropriées pour accéder au shell de commande dans le serveur SQL? –

+0

Oui, j'obtiens une sortie de PsExec avant qu'elle ne tombe en panne. La même commande fonctionne à partir de cmd.exe. Voici les résultats d'essayer d'exécuter le bloc-notes à partir de SQL « PsExec v1.96 - Exécuter les à distance Copyright (C) 2001-2009 Mark Russinovich Sysinternals -. Www.sysinternals.com NULL Accès refusé PsExec ne pouvait pas start notepad: " – ccook

Répondre

1

Vous êtes probablement en cours d'exécution en tant qu'utilisateur ce SQL ou un utilisateur sans autorisations à ce fichier. Mon meilleur pari est un utilisateur SQL (tel que sa). Lorsque vous faites cela, les informations d'identification Windows qu'il utilise sont du compte de service, qui est SYSTEM par défaut, mais pourrait être autre chose si vous le définissez de cette façon.

Si vous appelez simplement ceci à partir de SQL, assurez-vous que vous êtes en fait en cours d'exécution en tant qu'utilisateur Windows disposant des autorisations nécessaires pour ouvrir tous les fichiers nécessaires. Si cela est en cours d'exécution dans un travail de l'Agent SQL Server, vous devez set up a Credential, puis set up a Proxy. Une fois que vous avez fait cela, vous pouvez assigner le Proxy pour exécuter le travail (c'est la troisième ou la quatrième liste déroulante dans la boîte de dialogue Job Step), et il fonctionnera avec les informations d'identification Windows correctes.

+0

Merci Eric, je vais essayer ça. Le script fonctionnait en effet en tant que système. – ccook

Questions connexes