Hello,
I’m trying to use the following script to modify hundreds of LNK dispatched in several folders on a Samba server.
The problem is I can’t access it without authentification and PowerShell doesn’t seem to inherit the authentification saved on the computer.
Here is the script :
<span style="color: #000000">
<span style="color: #0000bb">
</span><span style="color: #ff8000"># Call wscript com object
</span><span style="color: #0000bb">$shell </span><span style="color: #007700">= new-</span><span style="color: #0000bb">object </span><span style="color: #007700">-</span><span style="color: #0000bb">com wscript</span><span style="color: #007700">.</span><span style="color: #0000bb">shell
</span><span style="color: #ff8000"># Recurse through directories for .lnk files
</span><span style="color: #0000bb">dir </span><span style="color: #dd0000">"\\SAMBA\COMMUN\" </span><span style="color: #007700">-</span><span style="color: #0000bb">filter </span><span style="color: #007700">*.</span><span style="color: #0000bb">lnk </span><span style="color: #007700">-</span><span style="color: #0000bb">recurse </span><span style="color: #007700">| foreach {
</span><span style="color: #0000bb">$lnk </span><span style="color: #007700">= </span><span style="color: #0000bb">$shell</span><span style="color: #007700">.</span><span style="color: #0000bb">createShortcut</span><span style="color: #007700">(</span><span style="color: #0000bb">$_</span><span style="color: #007700">.</span><span style="color: #0000bb">fullname</span><span style="color: #007700">)
</span><span style="color: #0000bb">$oldPath</span><span style="color: #007700">= </span><span style="color: #0000bb">$lnk</span><span style="color: #007700">.</span><span style="color: #0000bb">targetPath
</span><span style="color: #ff8000"># If match text, perform operation
</span><span style="color: #007700">if(</span><span style="color: #0000bb">$oldpath </span><span style="color: #007700">-</span><span style="color: #0000bb">match </span><span style="color: #dd0000">"\\SAMBA\SambaShare"</span><span style="color: #007700">)
{
</span><span style="color: #0000bb">write</span><span style="color: #007700">-</span><span style="color: #0000bb">host </span><span style="color: #dd0000">"Match: " </span><span style="color: #007700">+ </span><span style="color: #0000bb">$_</span><span style="color: #007700">.</span><span style="color: #0000bb">fullname
remove</span><span style="color: #007700">-</span><span style="color: #0000bb">item $_</span><span style="color: #007700">.</span><span style="color: #0000bb">fullname
$lnknew </span><span style="color: #007700">= </span><span style="color: #0000bb">$shell</span><span style="color: #007700">.</span><span style="color: #0000bb">createShortcut</span><span style="color: #007700">(</span><span style="color: #0000bb">$_</span><span style="color: #007700">.</span><span style="color: #0000bb">fullname</span><span style="color: #007700">)
</span><span style="color: #0000bb">$lnknew</span><span style="color: #007700">.</span><span style="color: #0000bb">targetPath </span><span style="color: #007700">= </span><span style="color: #dd0000">"`"</span><span style="color: #0000bb">\\SAMBA</span><span style="color: #007700">`</span><span style="color: #0000bb">""
$lnknew.IconLocation = "%SystemRoot%\system32\SHELL32.dll,4"
$lnknew.Save()
</span><span style="color: #007700">}</span>
<span style="color: #007700">}</span><span style="color: #0000bb">
Write-Host "End..."
</span></span>
So I would need to auth on the server before launching the command “dir”.
Can anyone help with that ? Thanks you