Если вы являетесь разработчиком и администраторов скриптов PowerCLI / PowerShell для автоматизации операций в виртуальной инфраструктуре VMware vSphere, вам, наверняка, часто приходится хардкодить логин и пароль для соединения с сервером vCenter или вводить их в интерактивном режиме. Это не очень безопасно (мало ли кто увидит ваш скрипт на экране), да и вообще, не очень удобно.
Специально для этого в PowerCLI есть хранилище, называемое Credential Store, в которое можно помещать логин и пароль от сервера, с которым вы соединяетесь из скрипта.
Таким образом для этого хоста вы помещаете креды "user" с паролем "password" в шифрованное хранилище Credential Store, которое находится в следующем файле:
%APPDATA%\VMware\credstore\vicredentials.xml
Теперь при соединении с vCenter из скрипта, просто пишете:
Connect-VIServer 192.168.1.10
В этом случае, при отсутствии указания логина и пароля, PowerCLI заглядывает в хранилище и смотрит, нет ли там кредов для этого хоста, и если они есть, то подставляет их. Все просто.
Чтобы посмотреть креды из хранилища, нужно просто вызвать следующий командлет:
Такой способ хранения логинов и паролей для скриптов действует для конкретного пользователя, так как они хранятся в Credential Store в зашифрованном виде и могут быть расшифрованы только под ним. То есть, если злоумышленник украдет виртуальную машину с этими скриптами, но не сможет залогиниться под этим пользователем, получить эти пароли он не сможет, при условии использования Windows file encryption (EFS) для файла хранилища.
Есть также и альтернативный метод хранения кредов для скриптов в произвольном файле.