I've thought a lot about how a logonscript should work. What kind of protocol is needed to create a good script.
There are several situations where a pc-based solution as mentioned by Lueghi by creating a %machinename%.bat might be sufficient. For instance, when everybody in your organisation always uses the same pc.
If there IS some change in pc's that are used by people, for instance when there are desktops that can be randomly used by anyone, a %username%.bat can solve the problem.
But IMO those solutions are not the way to approach this issue.
I think a better way is to give resources and permissions by identifying the needs a function someone has in a company. For each resource and/or permission you create a group that has gives the rights to that resource or permission. In the login.bat you give those resources based on the function of the account, rather than the account name itself. When someone changes his or her function, it is a lot easier to change the necessary resources and permissions.
For printers you could think of location dependent assignment. Especially when the company has a large building or has different locations. Based on subnet/VLAN you can assign printers closest to the location where the user logs in.