你最常用的 Powershell 命令是什么?让我们列个清单,选出最好的!
今天我听了一个关于PowerShell 2.0的HanselMinutes播客。Scott Hanselman 在 TechEd 2009 上采访了 Hal Rottenberg 和 Kirk Munro。
他们讨论了PowerShell 2.0 中的RunSpaces。有人可以解释一下它们背后的概念并给出一些(现实世界的)用例或示例吗?
谢谢!
我想编写一个获得以下参数作为输入的 powershell 脚本:
要复制的文件夹、扩展允许、要复制到的文件夹和一个布尔值,指示更改是否应重新启动 IIS、用户名和密码。
考虑到我要复制到远程服务器,我应该查看哪些 cmdlet?
如何将参数读入变量?
如何重新启动 IIS?
考虑到我可能想要复制多个文件夹,我该如何编写一个调用 powershell 脚本的 powershell 脚本?
我有安装了CopSSH 的Windows Server 2003 (Cygwin + sshd)。我希望能够通过 SSH 会话命令运行 PowerShell 脚本,然后使用其输出。有这种能力吗?怎么做?
我喜欢早上新机器的气味。
我正在自动化一个机器创建工作流,该工作流涉及我的基础架构中的多个独立系统,其中一些涉及 Solaris 主机上已有 15 年历史的 perl 脚本、PXE 引导 Linux 系统和 Windows Server 2008 上的 Powershell。
我可以编写每个单独部分的脚本,并且集成 Linux 和 Unix 自动化相当简单,但我不知道如何将 Powershell 脚本可靠地与其余进程联系起来。
我更希望这个过程在 Linux 主机上开始,因为我认为它最终会作为一个运行在 Apache 服务器上的 Web 应用程序,但如果它需要在 Windows 上开始,我对此犹豫不决。
理想情况下,我希望Linux的psexec 之类的东西可以在 Windows 上运行,但是Cygwin似乎给出了这个方向的答案,尽管我很欣赏他们付出的所有辛勤工作,但感觉从来没有正确过,如果你明白我的意思。它非常适合台式机并提供了很多功能,但我觉得 Windows 服务器应该被视为 Windows 服务器而不是混蛋的 Unix 机器(顺便说一句,这也是我反对 OSX 服务器的论据,它们实际上是Unix) . 无论如何,除非这是最后也是唯一的选择,否则我不想使用 Cygwin。
所以我想我要问的是是否有办法从 Linux 在 Windows 机器上执行作业。没有 Cygwin。我对想法和建议持开放态度,包括“看白痴,每个人都使用 Cygwin,所以接受并处理它”。提前致谢!
我正在尝试在以工作组模式运行的 Windows 2008 R2 服务器上启用 Powershell 远程处理。
我在 PowerShell 控制台中运行了命令 Enable-PSRemoting。
PS C:\Windows\system32> Enable-PSRemoting
WinRM Quick Configuration Running command "Set-WSManQuickConfig" to enable this machine for remote management through WinRM service This includes:
1. Starting or restarting (if already started) the WinRM service
2. Setting the WinRM service type to auto start
3. Creating a listener to accept requests on any IP address
4. Enabling firewall exception for WS-Management traffic (for http only).
Do you want to continue? [Y] Yes [A] …Run Code Online (Sandbox Code Playgroud) 剧本相当直接。只是尝试启动一堆 Windows 服务。在目标机器上执行本地工作正常。当通过 PsExec 完成时,该脚本实际上也能正常执行,直到我在 CMD 提示符下按“回车”键,它才会返回。这是一个问题,因为这是从 TeamCity 调用的,它使 Agent 挂起,等待 PsExec 返回。
我尝试了以下方法:
exit和exit 0< NUL根据此 SF 问题中的答案,在 PsExec 调用的末尾添加一个>标准输出重定向这就是我实际调用 psexec 的方式:
psexec \\target -u domain\username -p password powershell c:\path\script.ps1
Run Code Online (Sandbox Code Playgroud)
无论我做什么,它都会挂起,直到我在 cmd 提示符下本地。按回车后,我收到消息:
powershell exited on target with error code 0.
Run Code Online (Sandbox Code Playgroud) 我需要用powershell解压缩一个文件。我见过每个人这样做的典型方法是使用脚本自动化 shell。
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
$destinationFolder = $shellApplication.NameSpace($destination)
$destinationFolder.CopyHere($zipPackage.Items())
Run Code Online (Sandbox Code Playgroud)
这对我不起作用,因为服务器核心没有外壳,所以没有自动化。这会导致 E_FAIL COM 错误。
Powershell 似乎无法自行完成,如果我参加第 3 方,我必须首先想办法将实用程序加载到服务器上。7-Zip 是我的首选,但我似乎无法编写下载和安装它的脚本。Sourceforge 不断向我吐槽 HTML 文件。
如何在 Server 2012 Core 中完全编写解压 zip 文件的脚本?
我是 powershell 的新手,但我一直在阅读手册并进行了一些练习。我的目标是列出指定路径下所有安全组中的所有用户。我找到了这样做的方法:
get-adgroup -Filter * -SearchBase "OU=Groups,DC=corp,DC=ourcompany,DC=Com" | %{Get-ADGroupMember $_.name} | ft name
Run Code Online (Sandbox Code Playgroud)
但问题是我没有看到组名。我得到的只是一堆用户。如果有人能告诉我如何在该组的所有成员被列出之前显示组名,那就太好了。谢谢。
我正在尝试创建几个可以保存在本地桌面上的文件以启动 PowerShell 会话。
Windows Server 2008 和 Windows Server 2012 都是服务器核心安装。
目前,我可以打开 Powershell 并输入:
Enter-PSSession -computername Win2012SrvCore -credential administrator
Run Code Online (Sandbox Code Playgroud)
使用它,我可以连接和运行命令,一切都很棒。
我试图做的是:
创建Win2012SrvCore1.ps1使用以下命令调用的文件:
$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd
$session = new-pssession -computername Win2012SrvCore -credential $cred
Run Code Online (Sandbox Code Playgroud)
创建Win2012SrvCore2.ps1使用以下命令调用的文件:
PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator
Run Code Online (Sandbox Code Playgroud)
每个ps1文件都会快速启动和关闭,并带有一些我无法阅读的红色文本。
我试图添加PAUSE到每个脚本中,但这似乎并没有阻止窗口关闭。
我想要做的是创建脚本,我可以双击并打开到 powershell 提示符,类似于保存的 RDP 会话。
我已经配置了 ps1 文件来执行:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
powershell ×10
windows ×3
automation ×1
copssh ×1
cygwin ×1
groups ×1
linux ×1
pstools ×1
ssh ×1