Powershell 在运行脚本之前请求计算机名
我有一个脚本,可以停止服务,然后重命名本地计算机上的文件夹。我希望能够通过要求命令执行器输入要运行脚本的计算机名,然后执行该脚本,从而远程运行Powershell 在运行脚本之前请求计算机名,powershell,Powershell,我有一个脚本,可以停止服务,然后重命名本地计算机上的文件夹。我希望能够通过要求命令执行器输入要运行脚本的计算机名,然后执行该脚本,从而远程运行 试试看{ 停止服务Wauserv-强制 }抓住{ 写入错误“无法停止服务WUAUSERV” 开始睡眠-5秒 出口 } 试一试{ 将项目“C:\Windows\SoftwareDistribution”重命名为“C:\Windows\SoftwareDistribution.old”-强制 }抓住{ 写入错误“无法重命名文件夹:(” 启动服务Wauserv
试试看{
停止服务Wauserv-强制
}抓住{
写入错误“无法停止服务WUAUSERV”
开始睡眠-5秒
出口
}
试一试{
将项目“C:\Windows\SoftwareDistribution”重命名为“C:\Windows\SoftwareDistribution.old”-强制
}抓住{
写入错误“无法重命名文件夹:(”
启动服务Wauserv
开始睡眠-5秒
出口
}
启动服务Wauserv
我可能会让脚本在顶部添加一个参数
Param(
[参数(必需)][字符串]$ComputerName
)
如果未提供值,则强制值将提示用户输入值
或者,如果您确实想手动询问用户,您可以使用以下方法:
$ComputerName=读取主机“ComputerName”
这还将提示用户输入变量
然后使用Invoke命令
在远程计算机上运行逻辑
Invoke命令-ComputerName$ComputerName-ScriptBlock{
#你的代码在这里。。
}
编辑:
更新后,我注意到您通过调用exit
来终止脚本。我建议您改为使用return
。如果有人从命令行运行此脚本,脚本将杀死终端,这非常烦人
Edit2:下面是一个完整的工作示例,以及我的建议:
Param(
[参数(必需)][字符串]$ComputerName
)
调用命令-ComputerName$ComputerName-ScriptBlock{
试一试{
停止服务Wauserv-强制
}抓住{
写入错误“无法停止服务WUAUSERV”
开始睡眠-5秒
返回
}
试一试{
将项目“C:\Windows\SoftwareDistribution”重命名为“C:\Windows\SoftwareDistribution.old”-强制
}抓住{
写入错误“无法重命名文件夹:(”
启动服务Wauserv
开始睡眠-5秒
返回
}
启动服务Wauserv
}
您需要查找如何格式化代码,这不容易阅读。无论如何,您正在那里调用Enter PSSession
,这不在我的示例中。我将更新一个完整的工作示例。很抱歉,谢谢。当我输入计算机名时,我一直收到下面的消息“连接到远程服务器LN-T48-PC19RG1P失败,出现以下错误消息:用户名或密码不正确。”忽略我最后的评论,它确实有效,非常感谢!!