Sử dụng register tham số cho pg_ctl chương trình.
Thư mục dữ liệu không được lưu trữ trong Program Files , vị trí của %ProgramData% là ví dụ một lựa chọn tốt.
pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...
Trong các phiên bản Postgres mới hơn, tài khoản Windows riêng không còn cần thiết nữa, vì vậy, những điều sau đây cũng là đủ
pg_ctl.exe register -N PostgreSQL -D "%ProgramData%/db_data" ...
Chi tiết có trong sách hướng dẫn:https://www.postgresql.org/docs/current/static/app-pg-ctl.html
Bạn cần đảm bảo thư mục D:/Program Files/PostgreSQL/9.0.4/db_data có các đặc quyền chính xác cho người dùng windows mà bạn chỉ định với -U cờ.
Btw:lưu trữ dữ liệu chương trình trong Program Files là một ý tưởng tồi . Bạn nên di chuyển thư mục dữ liệu ra nơi nào đó bên ngoài Program Files bởi vì Program Files thường bị hạn chế nhiều đối với người dùng thông thường - với một lý do rất chính đáng.