Powershell 询问并使用用户输入

Powershell 询问并使用用户输入,powershell,input,Powershell,Input,我试图创建一个脚本,提示用户输入他们的计算机名,然后在Get EventLog行中使用该信息。我是powershell的新手,我使用批处理脚本来完成它,但是我不知道如何在这里完成它 这就是我到目前为止所做的: $name1 = Read-Host 'Enter name' cls Get-EventLog system -computername COMPUTERNAMEHERE -InstanceId 2147489657 -Newest 5 | ft EventID,TimeWritten,

我试图创建一个脚本,提示用户输入他们的计算机名,然后在
Get EventLog
行中使用该信息。我是powershell的新手,我使用批处理脚本来完成它,但是我不知道如何在这里完成它

这就是我到目前为止所做的:

$name1 = Read-Host 'Enter name'
cls
Get-EventLog system -computername COMPUTERNAMEHERE -InstanceId 2147489657 -Newest 5 | ft EventID,TimeWritten,MachineName -AutoSize
Pause

还有。。。我怎样才能像批处理脚本一样双击它来运行它呢?

并没有真正回答您的第一个问题,您似乎已经讨论过了,关于禁用脚本时出现的错误:默认和设计,微软关闭了一个主要的攻击向量,它出现在它以前的脚本尝试中:代码的任意执行。您需要深入了解更多信息,但基本上,PowerShell只允许从命令主机逐行执行

@jscott认为PowerShell exe的
-ExecutionPolicy Bypass
参数对您来说是正确的,但是如果您到处使用它,我建议您理解Bypass执行策略的含义


我最喜欢的受信任机器策略是
RemoteSigned
策略。它为您提供了一种防止任意执行的安全措施(任何不是源于您机器上的脚本都需要由受信任的证书进行加密签名),并且仍然允许您运行脚本。

并没有真正回答您的第一个问题,因为您似乎已经回答了这个问题,关于你得到的关于禁用脚本的错误:默认情况下,微软关闭了所有以前脚本尝试中出现的一个主要攻击向量:代码的任意执行。您需要深入了解更多信息,但基本上,PowerShell只允许从命令主机逐行执行

@jscott认为PowerShell exe的
-ExecutionPolicy Bypass
参数对您来说是正确的,但是如果您到处使用它,我建议您理解Bypass执行策略的含义


我最喜欢的受信任机器策略是
RemoteSigned
策略。它为您提供了一种针对任意执行的安全措施(任何非源于您机器上的脚本都需要由可信证书进行加密签名)并且仍然允许您运行脚本。

也许我有点误解……您只是在问如何使用读入$name1的值作为-ComputerName参数的参数?只需将
COMPUTERNAMEHERE
替换为变量$name1。请参阅有关双击和powershell的内容。您只需这样做?现在我觉得自己很笨。它在运行,但如果我尝试用快捷方式运行它,我会得到一个错误:无法加载,因为在这个系统上运行脚本被禁用。你知道我可以在脚本中添加什么来运行它而不完全关闭限制吗?仅针对此脚本。您也可以直接调用PowerShell解释器,告诉它仅对当前文件使用旁路:
PowerShell.exe-ExecutionPolicy Bypass-file
可能我误解了什么……您只是问如何使用读入$name1的值作为-ComputerName参数的参数吗?只需将
COMPUTERNAMEHERE
替换为变量$name1。请参阅有关双击和powershell的内容。您只需这样做?现在我觉得自己很笨。它在运行,但如果我尝试用快捷方式运行它,我会得到一个错误:无法加载,因为在这个系统上运行脚本被禁用。你知道我可以在脚本中添加什么来运行它而不完全关闭限制吗?仅适用于此脚本。您也可以直接调用PowerShell解释器,告诉它只对当前文件使用旁路:
powershell.exe-ExecutionPolicy Bypass-file
,但是我可以为该脚本运行一些东西,让它在运行时工作,就这样?但是我可以为该脚本运行一些东西,让它在运行时工作,就这样?