L'accesso viene negato quando si esegue un processo batch in un computer basato su Windows Server 2003

Questo articolo fornisce la soluzione a un errore (Accesso negato) che si verifica quando si esegue un processo batch in un computer basato su Microsoft Windows Server 2003.

Si applica a: Windows Server 2003
Numero KB originale: 867466

Sintomi

Quando si esegue un processo batch eseguito nel contesto di un normale account utente, lo script potrebbe non essere eseguito. Se si esegue il processo batch usando la funzionalità Attività pianificate, è possibile che il messaggio di errore seguente venga registrato nel file di log attività pianificate (Schedlgu.txt):

0x80070005: accesso negato.

Se si usa un programma del debugger per tentare di determinare il motivo per cui il processo batch non funziona, nell'output di debug potrebbe essere visualizzato il messaggio di errore seguente:

Accesso negato (errore 5)

Causa

Questo problema si verifica se tutte le condizioni seguenti sono vere:

  • Il processo batch viene eseguito in un server membro basato su Windows Server 2003.
  • Il processo batch viene eseguito come processo non interattivo.
  • Il processo batch è configurato per l'esecuzione nel contesto di un account che non è membro del gruppo Administrators.

In Windows Server 2003 il gruppo Utenti non dispone delle autorizzazioni lettura ed esecuzione per il processore dei comandi (Cmd.exe). Per impostazione predefinita, il programma Cmd.exe dispone delle impostazioni di autorizzazioni seguenti:

  • Il gruppo implicito Interattivo e il gruppo implicito Del servizio dispongono delle autorizzazioni Lettura ed Esecuzione.

    Nota

    In un server membro, anche il gruppo TelnetClients dispone delle autorizzazioni Lettura ed Esecuzione. In un controller di dominio, il gruppo implicito Batch dispone anche delle autorizzazioni Lettura ed Esecuzione.

  • Il gruppo Administrators e il gruppo implicito System hanno autorizzazioni di controllo completo.

Per risolvere questo problema, usare uno dei metodi seguenti.

Risoluzione 1: Concedere autorizzazioni di lettura ed esecuzione Cmd.exe

Concedere al programma Cmd.exe autorizzazioni lettura ed esecuzione per l'account utente in cui viene eseguito il processo batch. A tal fine, attenersi alla seguente procedura:

  1. Fare clic su Start e quindi su Esplora risorse.

  2. Individuare e quindi fare clic con il pulsante destro del mouse sul file Cmd.exe. Il file Cmd.exe si trova nella cartella %windir%\System32.

  3. Fare clic su Proprietà.

  4. Fare clic sulla scheda Sicurezza.

  5. Fare clic su Aggiungi.

  6. Nella casella Immettere i nomi degli oggetti da selezionare digitare il nome utente in cui viene eseguito il processo batch e quindi fare clic su OK due volte.

    Nota

    Quando si aggiunge l'utente, all'utente vengono concesse automaticamente le autorizzazioni di lettura ed esecuzione.

  7. Fare clic su quando viene richiesto di continuare.

Risoluzione 2: Concedere le autorizzazioni di lettura ed esecuzione per Cmd.exe file al gruppo Batch

Concedere le autorizzazioni lettura ed esecuzione per il file Cmd.exe al gruppo Batch. Ciò consente a tutti i processi batch di eseguire il processore di comandi. A tal fine, attenersi alla seguente procedura:

  1. Fare clic su Start e quindi su Esplora risorse.
  2. Individuare e quindi fare clic con il pulsante destro del mouse sul file Cmd.exe . Il file Cmd.exe si trova nella cartella %windir%\System32.
  3. Fare clic su Proprietà.
  4. Fare clic sulla scheda Sicurezza.
  5. Fare clic su Aggiungi.
  6. Nella casella Immettere i nomi degli oggetti da selezionare digitare Batch e quindi fare clic su OK due volte.
  7. Fare clic su quando viene richiesto di continuare.

Ulteriori informazioni

Il comportamento descritto in questo articolo è diverso dal comportamento predefinito di Microsoft Windows 2000 Server. Per impostazione predefinita, Windows 2000 Server concede le autorizzazioni Di lettura ed Esegui al gruppo Utenti.

Per altre informazioni sui gruppi impliciti, visitare i seguenti siti Web Microsoft: