通过Azure powershell中的命令远程运行SysPrep
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Azure powershell中的命令远程运行SysPrep相关的知识,希望对你有一定的参考价值。
我想运行一些命令来通过PowerShell远程执行Sysprep。
所以首先我用这个创建一个会话:
$UserName = "IPAddressusername"
$Password = ConvertTo-SecureString "password" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)
$s = New-PSSession -ComputerName IPAddress -Credential $psCred
然后分配Sysprep中使用的变量:
$sysprep = 'C:WindowsSystem32SysprepSysprep.exe'
$arg = '/generalize /oobe /shutdown /quiet'
$sysprep += " $arg"
最后运行这个:
Invoke-Command -Session $s -ScriptBlock {$sysprep}
当我运行最后一个命令时,实际上什么也没发生。但是在脚本块中,而不是$sysprep
,如果我给出任何其他命令,比如启动/停止服务,它会给出一些响应。但SysPrep命令似乎不起作用。任何人都可以建议我做错了什么。
答案
您正在尝试调用scriptblock对象,而$sysprep
是一个字符串。您可能希望使用Start-Process
cmdlet。像这样:
$sysprep = 'C:WindowsSystem32SysprepSysprep.exe'
$arg = '/generalize /oobe /shutdown /quiet'
Invoke-Command -Session $s -ScriptBlock {param($sysprep,$arg) Start-Process -FilePath $sysprep -ArgumentList $arg} -ArgumentList $sysprep,$arg
以上是关于通过Azure powershell中的命令远程运行SysPrep的主要内容,如果未能解决你的问题,请参考以下文章
如何通过powershell或C#使用本地IP远程更新azure SQL防火墙
通过PowerShell命令给Azure VM添加CustomScriptExtension
如何在PowerShell中使用.NET Framework