Usa il register parametro per il pg_ctl programma.
La directory dei dati non deve essere archiviata in Program Files , la posizione di %ProgramData% è ad es. una buona scelta.
pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...
Nelle versioni più recenti di Postgres, non è più necessario un account Windows separato, quindi è sufficiente anche quanto segue
pg_ctl.exe register -N PostgreSQL -D "%ProgramData%/db_data" ...
I dettagli sono nel manuale:https://www.postgresql.org/docs/current/static/app-pg-ctl.html
Devi assicurarti che la directory D:/Program Files/PostgreSQL/9.0.4/db_data ha i privilegi corretti per l'utente Windows specificato con -U bandiera.
A proposito:è una cattiva idea memorizzare i dati del programma in Program Files . Dovresti spostare la directory dei dati da qualche parte al di fuori di Program Files perché Program Files di solito è molto limitato per gli utenti regolari, con un'ottima ragione.