Я недавно начал изучать Powershell. Моя проблема в том, что я пытаюсь запустить скрипт powershell, чтобы разморозить удаленный компьютер, но один из параметров Time Freeze содержит знак доллара. Как мне это сделать?
По сути, мне нужно выполнить следующую команду:
cmd.exe /c "C:\Program Files\Toolwiz Time Freeze 2017\ToolwizTimeFreeze.exe" /unfreeze /usepass=$password
Где знак доллара является частью пароля. Если я запускаю его на консоли powershell непосредственно на удаленном компьютере, он работает (мне просто нужно добавить одинарные кавычки вокруг $ password) . Но когда я пытаюсь запустить скрипт с моего локального компьютера, он застревает на нем, и мне нужно отменить его, нажав Ctrl C.
Сценарий, о котором идет речь, таков:
$User = "user"
$PWord = ConvertTo-SecureString "password" -AsPlainText -Force
$Ip = Read-Host -Prompt 'Insira o IP da maquina de destino:'
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
$sess = New-PSSession -Credential $Cred -ComputerName $Ip
Enter-PSSession $sess
Invoke-Command -ComputerName $Ip -ScriptBlock { cmd.exe /c "C:\Program Files\Toolwiz Time Freeze 2017\ToolwizTimeFreeze.exe" /unfreeze /usepass=$password} -Credential $Cred
Remove-PSSession $sess
Exit-PSSession
Я попытался использовать Start-Process -Filepath и & для запуска Time Freeze, но он также не работает (скрипт выполняется, но ничего не происходит), но когда я пытаюсь запустить другие команды, такие как создание новой папки на пультемашина или перезапуск, он работает отлично.
Я не знаю, что еще попробовать.
Edit1: я пытался передать параметр в одинарных кавычках, и я также пыталсяиспользуя -argumentlist, но он тоже не работает.
Edit2: если я запускаю скрипт локально, он отлично работает, даже на удаленной машине. Но когда я пытаюсь запустить его удаленно, это не работает. Это кажется мне очень странным, потому что я могу успешно запускать другие команды удаленно, но с этим у меня проблемы.