Это очень наивно в этом нет никакой проверки ошибок / и т.д., но это делает то, что Вы хотите. Я предполагаю здесь, что Вы используете Powershell 2.0 с WinRM.
Принятие Вас имеет установку CSV как это:
server,path
server1,c:\path1
server2,c:\path2
server3,c:\path3
Решение было бы похоже так:
$csvdata = import-csv .\test.csv
foreach ($row in $csvdata) {
invoke-command $row.server { param($path) mkdir $path } -argumentlist $row.path
}
Единственная действительно странная часть здесь - то, как Вы передали путь в. Как правило, сценарий в вызывать-команде не может считать Ваши локальные переменные. Вы устанавливаете параметрический усилитель для него (названный $path
) и затем помещенный локальная переменная $row.path
в список аргументов - это позволяет команде mkdir на удаленных серверах использовать $path
переменная и это видят то, что было передано в из файла CSV.
Хорошо, для тех, кто заинтересован, apache требует наличия директивы AuthType и проверка имени пользователя каким-либо модулем.
Итак, я написал очень короткий модуль, который принимает AuthType Any и принимает любое имя пользователя.
Конфигурация выглядит так:
<Location /slaptest>
Allow from all
SSLVerifyClient require
SSLVerifyDepth 1
SSLUserName SSL_CLIENT_S_DN_CN
AuthType Any
AuthAnyAuthoritative on
AuthLDAPURL "ldaps://vldap-rectech/ou=XXX,ou=YYY,o=ZZZ?cn"
AuthzLDAPAuthoritative on
AuthLDAPBindDN "cn=UUU,ou=Users,ou=XXX,ou=YYY,o=ZZZ"
AuthLDAPBindPassword "******"
AuthLDAPGroupAttributeIsDN on
AuthLDAPGroupAttribute member
AuthLDAPRemoteUserIsDN off
Require valid-user
Require ldap-group cn=ADMIN,ou=Groups,ou=XXX,ou=YYY,o=ZZZ
</Location>
Следующее было протестировано в Apache HTTP Server 2.4.29 против Windows Server 2019 Active Directory:
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/ssl/private/tls_server_cert_and_key.pem
SSLCACertificateFile /etc/ssl/certs/trusted_root_ca_for_client_certs.pem
SSLVerifyClient require
# Use the email from the succesfully authenticated client certificate to look up for the AD user.
SSLUserName SSL_CLIENT_S_DN_Email
<Location />
AuthBasicProvider ldap
# "userPrincipalName" allows to search by the AD user email.
# "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))" filters out disabled AD users, so only active AD users are allowed to be authorized.
AuthLDAPURL "ldap://<ACTIVE_DIRECTORY_IP>:3268/DC=example,DC=org?userPrincipalName?sub?(objectClass=person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))"
AuthLDAPBindDN "CN=apache-bind-user,CN=Users,DC=example,DC=org"
AuthLDAPBindPassword "<apache-bind-user-password>"
<RequireAll>
Require ldap-group CN=Some Group,CN=Users,DC=example,DC=org
</RequireAll>
</Location>
</VirtualHost>
PS: я не эксперт в HTTP-сервер Apache или Active Directory, поэтому предыдущая конфигурация может быть неоптимальной/безопасной.