Add-Type -AssemblyName PresentationFramework
[xml]$XML = @"
<Window xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title = "windows update" Height = "480" Width = "640">
<Grid Background = "#FFC1C3CB">
<Button Name = "WU" Content = "lancer la MAJ" HorizontalAlignment = "Left" Margin = "327,10,0,0" VerticalAlignment = "Top" Width = "100" Height = "54"/>
<TextBox Name = "PCWU" HorizontalAlignment = "Left" Height = "23" Margin = "145,10,0,0" TextWrapping = "Wrap" Text = "D23-0494" VerticalAlignment = "Top" Width = "160"/>
<Button Name = "Close" Content = "Fermer la fenêtre" HorizontalAlignment = "Right" Margin = "10,10,0,0" VerticalAlignment = "Top" Width = "100" Height = "54"/>
</Grid>
</Window>
"@
$FormXML = (New-Object System.Xml.XmlNodeReader $XML)
$Window = [Windows.Markup.XamlReader]::Load($FormXML)
$Window.FindName("WU").add_click({
$computer = $Window.FindName('PCWU').Text
Invoke-Command -ComputerName $computer -ScriptBlock {.\Windows11InstallationAssistant.exe /QuietInstall /SkipEULA /NoRestartUI}
})
$Window.FindName("Close").add_click({
$Window.Close()
})
$Window.ShowDialog()
у меня есть этот код для установки Windows11 с помощью помощника, но когда я нажимаю, чтобы обновить оболочку, скажите objectnotFound
Пробовал переместить файл в корень ПК, тоже не получается





Если у вас возникла проблема, когда exe-файл не найден, вы можете изменить формат записи, добавив & в начале:... -ScriptBlock {& .\Windows11InstallationAssistant.exe ...
или сохраняет путь к exe-файлу в переменной:$WIA = "Full path of Windows11InstallationAssistant.exe"
Тогда ... -ScriptBlock {$WIA ...
Когда вы запускаете удаленный сеанс PowerShell, он запускается в каталоге ~\Documents удаленного целевого компьютера. Вы можете перейти в родительский каталог исполняемого файла Windows11InstallationAssistant.exe перед его запуском. Имейте в виду, что родительский каталог не ограничивается локальным по отношению к удаленному, это может быть общий сетевой ресурс, находящийся на компьютере, открывающем сеанс PSSession.
...
Invoke-Command -ComputerName $computer -ScriptBlock {
Set-Location 'path\to\parent\directory\at\the\remote\computer'
.\Windows11InstallationAssistant.exe /QuietInstall /SkipEULA /NoRestartUI
}
...
Если вы хотите сохранить рабочий каталог по умолчанию, добавьте родительский каталог в переменную среды PATH.
...
Invoke-Command -ComputerName $computer -ScriptBlock {
$Env:Path = "path\to\parent\directory\at\the\remote\computer;$Env:Path"
Windows11InstallationAssistant.exe /QuietInstall /SkipEULA /NoRestartUI
}
...
Или просто используйте полный путь к исполняемому файлу.
...
Invoke-Command -ComputerName $computer -ScriptBlock {
path\to\parent\directory\at\the\remote\computer\Windows11InstallationAssistant.exe /QuietInstall /SkipEULA /NoRestartUI
}
...
Если в пути есть пробелы, вы можете использовать оператор Call &
...
Invoke-Command -ComputerName $computer -ScriptBlock {
& 'path\to\parent\directory\at\the\remote\computer\Windows11InstallationAssistant.exe' /QuietInstall /SkipEULA /NoRestartUI
}
...
спасибо, я думал, что скриптблок берет файлы с локального ПК, а не с удаленного ПК
Почему бы вам просто не указать полный путь и имя файла для
Windows11InstallationAssistant.exe?