FirstLogonCommands работает только на 32-битной архитектуре

992
Bas

У меня 2 установки Windows, которые идентичны, одинаковые настройки, одинаковые программы. Разница лишь в том, что архитектура Windows отличается: 32-битная и 64-битная.

Когда я установил sysprep, моя 32-битная установка показала следующий файл ответов:

<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <FolderLocations> <ProfilesDirectory>U:\Users</ProfilesDirectory> </FolderLocations> <FirstLogonCommands> <SynchronousCommand wcm:action="add"> <CommandLine>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -ExecutionPolicy Bypass -File C:\Windows\System32\Scripts\PinTaskbarItems\Managetaskbar\Taskband.ps1</CommandLine> <Description>Sets the pinned taskbar items and restarts the explorer process</Description> <Order>1</Order> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> </FirstLogonCommands> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DesktopOptimization> <ShowWindowsStoreAppsOnTaskbar>false</ShowWindowsStoreAppsOnTaskbar> </DesktopOptimization> <CopyProfile>true</CopyProfile> <DoNotCleanTaskBar>true</DoNotCleanTaskBar> <EnableStartMenu>true</EnableStartMenu> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/bas/desktop/iso&apos;s/x32/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend> 

В настоящее время речь идет только о той FirstLogonCommandsчасти, которая прекрасно работает после 32-битного sysprep. Команда выполняется без ошибок и возвращает желаемый результат.

После настройки файла ответов для моей 64-битной установки это выглядит так:

<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DesktopOptimization> <ShowWindowsStoreAppsOnTaskbar>false</ShowWindowsStoreAppsOnTaskbar> </DesktopOptimization> <CopyProfile>true</CopyProfile> <DoNotCleanTaskBar>true</DoNotCleanTaskBar> <EnableStartMenu>true</EnableStartMenu> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <FolderLocations> <ProfilesDirectory>U:\Users</ProfilesDirectory> </FolderLocations> <FirstLogonCommands> <SynchronousCommand wcm:action="add"> <CommandLine>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -ExecutionPolicy Bypass -File C:\Windows\System32\Scripts\PinTaskbarItems\Managetaskbar\Taskband.ps1</CommandLine> <Description>Sets the pinned taskbar items and restarts the explorer process</Description> <Order>1</Order> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> </FirstLogonCommands> </component> </settings> <cpi:offlineImage cpi:source="wim:e:/sources/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend> 

Единственное, что перевернуто, это passпараметр settingsключа. Когда я попробовал этот файл ответов на 64-битной установке sysprep, FirstLogonCommandsон не запустился. Остальная часть файла ответов работала отлично, как и 32-битная версия.

Оба файла ответов проверены WSIM.

Я попытался скопировать строку из <CommandLine>ключа в CMD (с правами администратора или без) и запустить это. При таком запуске команда просто запускается без каких-либо ошибок.

Проблема в том, что скрипт не работает на моем 64-битном установочном sysprep.

Как это происходит и как я могу запустить этот скрипт, используя этот файл ответов?

0
@LPChip Это просто смутило меня. Это действительно папка, в которой я могу найти PowerShell и т. Д. Но как тогда команда может работать в обычном cmd? Bas 7 лет назад 0
Не берите в голову то, что я написал ранее. Syswow64 - это x86-версия папки system32. LPChip 7 лет назад 0
Я вижу что-то, что может вызвать это, и это ProfilesDirectory. Это другое LPChip 7 лет назад 0
Это мой плохой! `ProfilesDirectory` установлен в U: \ Users, что прекрасно работает и в 32-битной версии. Bas 7 лет назад 0
@LPChip Да, я изменил это сейчас. Но как может произойти что-то подобное, если команда просто работает в обычном cmd? Bas 7 лет назад 0
Извините, я понятия не имею. Я просто ищу несоответствия здесь. Вы можете попробовать принудительно запустить скрипт как x86, используя папку SYSWOW64 вместо System32, и посмотрите, поможет ли это. LPChip 7 лет назад 0
@LPChip Я также попытался поставить `-Force` в конце командной строки. Это не помогло, я также обновил машину до последних обновлений, а также никаких результатов .. Bas 7 лет назад 0

0 ответов на вопрос

Похожие вопросы