Ecco il mio script che viene eseguito come LocalSystem su una macchina, ma ha bisogno di credenziali di un utente domaim per accedere a un percorso di file di rete. Permette di memorizzare la password dell'utente in un file crittografato "sicuro"; che può essere letto solo dall'utente che lo ha scritto.
L'impostazione e la modifica della password vengono eseguite copiando un file con la password in chiaro nella macchina. Quando lo script viene eseguito di nuovo, legge la password, la crittografa, quindi elimina la password in chiaro.
$plaintext_password_file = 'C:\plaintext.txt' # Stores the password in plain text - only used once, then deleted
$encryted_password_file = 'C:\copy_pass.txt' # Stores the password in "safe" encrypted form - used for subsequent runs of the script
# - can only be decrypted by the windows user that wrote it
$file_copy_user = 'OURDOMAIN\A_User'
# Check to see if there is a new plaintext password
if (Test-Path $plaintext_password_file)
{
# Read in plaintext password, convert to a secure-string, convert to an encrypted-string, and write out, for use later
get-content $plaintext_password_file | convertto-securestring -asplaintext -force | convertfrom-securestring | out-file $encryted_password_file
# Now we have encrypted password, remove plain text for safety
Remove-Item $plaintext_password_file
}
# Read in the encrypted password, convert to a secure-string
$pass = get-content $encryted_password_file | convertto-securestring
# create a credential object for the other user, using username and password stored in secure-string
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $file_copy_user,$pass
# Connect to network file location as the other user and map to drive J:
New-PSDrive -Name J -PSProvider FileSystem -Root "\\network\file_directory" -Credential $credentials
# Copy the file to J:
Copy-Item -Force -Verbose -Path "C:\a_file.txt" -Destination "J:\"
Come raffinatezza in più: il nome utente potrebbe anche essere crittografati così, piuttosto che hardcoded.
fonte
2017-08-23 22:52:12
Ecco una domanda simile. http://stackoverflow.com/questions/10313/can-i-copy-files-to-a-network-place-from-a-script-or-the-command-line – notandy