2016-03-13 2 views
0

J'essaie de modifier les stratégies de groupe en remplaçant le fichier scripts.ini dans C: \ Windows \ System32 \ GroupPolicy \ Machine \ Scripts à l'aide d'un fichier de commandes. Le fichier de commandes est sur mon bureau dans un dossier appelé remplacer, le fichier scripts.ini personnalisé se trouve dans le même dossier. Quand je fais un clic droit sur le fichier de commandes et que je cours en tant qu'administrateur, il ne trouve soudainement pas le fichier scripts.ini qui se trouve dans le même dossier. Lorsque je ne cours pas en tant qu'administrateur, il le trouve, mais ne peut pas remplacer le fichier scripts.ini dans les stratégies de groupe.Problème de remplacement de fichier par lots

Edit: Voici le code (1 ligne):

xcopy /s/y scripts.ini C:\Windows\System32\GroupPolicy\Machine\Scripts 
+1

Peut-être que votre code est erroné - mais nous ne pouvons pas dire car c'est secret. –

+0

Modifiez votre question et postez votre code! – Hackoo

+1

S'il vous plaît voir la section Comment demander et poster le code ou attendre aucune aide ici. Pas d'infraction –

Répondre

2

Lorsque vous exécutez un script batch en double cliquant dessus, le répertoire en cours sera le dossier dans lequel réside le script.

Mais lorsque vous exécutez le script en tant qu'administrateur en cliquant avec le bouton droit de la souris, le répertoire en cours est quelque chose d'autre, généralement C:\wINDOWS\system32.

Votre script peut utiliser %~dp0 pour obtenir le chemin complet de l'endroit où le script est installé, vous pouvez simplement le préfixe de votre fichier source avec ce chemin:

xcopy /s/y "%~dp0scripts.ini" C:\Windows\System32\GroupPolicy\Machine\Scripts 

Si vous avez des commandes supplémentaires qui dépendent du courant répertoire, alors je vous suggère d'utiliser PUSHD pour changer votre répertoire actuel à la place

pushd "%~dp0" 
xcopy /s/y scripts.ini C:\Windows\System32\GroupPolicy\Machine\Scripts 
+0

Oh, il semble y avoir un autre problème, je ne peux pas écraser le fichier original, parce que c'est un fichier système. Même en tant qu'administrateur. –

+2

'/ s' n'est pas nécessaire ici pour copier un seul fichier. Mais l'utilisation de '/ R' en plus de'/Y' permet d'écraser un fichier de destination avec un ensemble d'attributs système. Voir [cette réponse] (http://stackoverflow.com/a/35829012/3074564) pour plus de détails sur la façon de copier un seul fichier avec __XCOPY__. – Mofi