Perforce Powershell wrapper Q: What is this? A: The p4ps1 libraries enhance the administration of perforce with powershell. There are a number of corresponding functions that load in your powershell environment that allow you to do things that might be useful: * Get users and groups as objects. * Sync perforce users and groups with active directory users and groups. * Get changes as objects * Automated reversion of users, clients, and shelves * Get other specs as objects Q: How does it work? A: The majority of the functions wrap around a regex parser of -ztag output from Perforce. There are a number of exceptions that need to be made for some variance in the way perforce sends it's message stream out, and they are handled in individual functions. Q: Why did you write it? A: It started out as a need to sync active directory users and groups with perforce groups and users. From there it just started to grow as I found it easy to write powershell wrappers for a lot of administrative functions. I prefer to admin perforce from the command line, and not through the P4V admin interface. (The P4 Admin interface is excellent, however!) I wanted to learn powershell, so in a way this was the "how to really make powershell work for me project". The tool needed to be accessable to administrators who are not programmers. Powershell is a programming language, but it doesn't need to be compiled - sometimes administrators are so far removed from the code production process that they don't have resources to bend a developer's ear for custom tools. This library should help make a p4 admin more self sufficient if they're not a developer as well. It does not require anything other than a relatively current p4.exe, powershell, and (for now) quest active directory commandlets. I am working on a way to remove that last bit so it basically requires your native powershell environment and p4 console executable for deployment. Q: What does it not do? A: It cannot query active directory on it's own at this point. You'll need to download the Quest (dell) Active directory command line tools. I plan on fixing that at some time in the future. There is some inconsistency between functions in the way they output objects. I would like to review each of the functions and refactor their output for a consistent style. That way, you could "p4get-user" a user, then "p4put-user" that same object with the parameters changed. All the object classes emitted from this are simply powershell custom objects. There is no native class for objects emitted. Q: What are your future plans? A: I think it would be excellent to leverage p4.net at some point, but that does go against my idea of making this understandable for the non-programmer. I'd like to remove the dependencies for the quest AD tools, and enhance the p4 replication management side of things. (as of 9/17/2013)