In English, when somebody is being very uncooperative in telling you information or performing task(s) you want them to, it is often said that getting them to cooperate is “like pulling teeth”. Another similar expression is “like getting blood out of a stone”. Is there a good French alternative for these expressions?
Tirer les vers du nez is only appropriate in sentences like “Prying information from X was like pulling teeth”, since it is specifically about informations.
If you want to refer to such difficulties in general case, you'd better use être la croix et la bannière, e.g. “Getting him to cooperate is like pulling teeth” would be “C'est la croix et la bannière de le faire coopérer”.
And in the case of a reticent person you can say he is une tête de mule.
In French, you would use tirer les vers du nez (literally: pull worms from his nose) when you try to get information from someone.
See also the entry for tirer les vers du nez on another site.
As others rightly say, this doesn't apply to making one do something, or to otherwise difficult situations. In these cases, in addition of the already mentioned calvaire (casse-tête is nice too), you can also compare your task to an impossible one:
— Tu as réussi à faire manger sa soupe à Pierre ? (Did you succeed in having Pierre eat his soup?)
— Non, autant essayer de faire danser la java à la tour Eiffel ! (No, it would be easier to try to make the Eiffel tower dance!)
We could also see this from another point of view: When someone doesn't want to say something, we could say that he is “muet comme une tombe” (mute as a grave).
(You can also answer someone that your are “muet comme une tombe” when someone asks you if you can keep a secret)
Or you can simply tell him he's not very cooperative. “Tu n'es pas très coopératif” (or “vous n'êtes pas très coopératif”).