powershell - How to create an XML file on a remote host? -


the script should connect server , create xml file below content.

<?xml version='1.0'?> <action>   <type>update_job</type>   <attribute name="job_id" value="331" />     <attribute name="variables">         <map>             <entry name="cc_waitapprove_continue" value="true"/>             <entry name="cc_approved" value="false"/>         </map>     </attribute> </action> 

update 1: able create xml file in same server using following code, not sure how code connect server , create xml file there:

param( [string] $jobid, [string] $path) $location = $path #"c:\users\sks" $x = @" <?xml version='1.0'?> <action>   <type>update_job</type>   <attribute name="job_id" value="$jobid" />     <attribute name="variables">         <map>             <entry name="cc_waitapprove_continue" value="true"/>             <entry name="cc_approved" value="false"/>         </map>     </attribute> </action> "@ new-item -path $location -name "testing.xml" -itemtype file -value $x 

update 2: googled , found can use this. c$ means? c:\?

$uncserver = "\\10.11.12.124" $uncfullpath = "$uncserver\c$\backup\folder"  $username = "anton" $password = "p@ssw0rd"  net use $uncserver $password /user:$username new-item -path $uncfullpath -name "testing.xml" -itemtype file -value $x 

by default windows hosts provide administrators access root folders of drives via hidden shares. names of so-called administrative shares consist of drive letter followed $ (to make share hidden). unc path of administrative share drive c: on host 10.11.12.124 be

\\10.11.12.124\c$ 

to access administrative share user must have administrative privileges on remote host.

to connect administrative share explicit credentials can use net.exe:

$username = '...' $password = '...' $path     = '\\10.11.12.124\c$'  & net use r: $path $password /user:$username 

or (more posh) use new-psdrive cmdlet:

$username = '...' $password = '...' $path     = '\\10.11.12.124\c$'  $secpw = convertto-securestring $password -asplaintext -force $cred  = new-object management.automation.pscredential ($username, $secpw)  new-psdrive -name r -psprovider filesystem -root $path -credential $cred 

if want avoid storing password in script can have script read file, or (when running script interactively) can use get-credential prompt credentials.

in case user doesn't have admin privileges (or don't want use account admin privileges operation, idea) need use existing regular share on remote host, or create one:

net share backup=c:\backup\folder /grant:anton,full 

on windows 8/server 2012 can use new-smbshare cmdlet this:

new-smbshare –name backup –path c:\backup\folder -fullaccess anton 

an entirely different approach put xml creation code in scriptblock, , run on remote host via invoke-command:

$sb = { $xml = @" <?xml version='1.0'?> <action>   <type>update_job</type>   <attribute name="job_id" value="$jobid" />     <attribute name="variables">         <map>             <entry name="cc_waitapprove_continue" value="true"/>             <entry name="cc_approved" value="false"/>         </map>     </attribute> </action> "@ new-item -path $args[0] -name 'testing.xml' -itemtype file -value $xml }  $server = '10.11.12.124' $path   = 'c:\backup\folder'  $username = '...' $password = '...'  $secpw = convertto-securestring $password -asplaintext -force $cred  = new-object management.automation.pscredential ($username, $secpw)  invoke-command -computer $server -scriptblock $sb -argumentlist $path -credential $cred 

note work must have psremoting enabled.


Comments

Popular posts from this blog

c# - Better 64-bit byte array hash -

webrtc - Which ICE candidate am I using and why? -

php - Zend Framework / Skeleton-Application / Composer install issue -