标签: powershell

您最喜欢的用于系统管理的 Powershell 命令或脚本是什么?

你最常用的 Powershell 命令是什么?让我们列个清单,选出最好的!

powershell

16
推荐指数
3
解决办法
2513
查看次数

Windows PowerShell 2.0 中的运行空间是什么?

今天我听了一个关于PowerShell 2.0HanselMinutes播客。Scott Hanselman 在 TechEd 2009 上采访了 Hal Rottenberg 和 Kirk Munro。

他们讨论了PowerShell 2.0 中的RunSpaces。有人可以解释一下它们背后的概念并给出一些(现实世界的)用例或示例吗?

谢谢!

windows powershell

16
推荐指数
1
解决办法
1万
查看次数

编写PowerShell脚本以将具有特定扩展名的文件从一个文件夹复制到另一个文件夹

我想编写一个获得以下参数作为输入的 powershell 脚本:
要复制的文件夹、扩展允许、要复制到的文件夹和一个布尔值,指示更改是否应重新启动 IIS、用户名和密码。
考虑到我要复制到远程服务器,我应该查看哪些 cmdlet?
如何将参数读入变量?
如何重新启动 IIS?

考虑到我可能想要复制多个文件夹,我该如何编写一个调用 powershell 脚本的 powershell 脚本?

powershell

16
推荐指数
2
解决办法
9万
查看次数

如何从 Cygwin SSH 会话运行 PowerShell 脚本?

我有安装了CopSSH 的Windows Server 2003 (Cygwin + sshd)。我希望能够通过 SSH 会话命令运行 PowerShell 脚本,然后使用其输出。有这种能力吗?怎么做?

windows powershell ssh cygwin copssh

16
推荐指数
3
解决办法
2万
查看次数

将 Powershell 脚本与非 Windows 工作流集成的方法?

我喜欢早上新机器的气味。

我正在自动化一个机器创建工作流,该工作流涉及我的基础架构中的多个独立系统,其中一些涉及 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,所以接受并处理它”。提前致谢!

automation linux windows powershell

16
推荐指数
1
解决办法
8223
查看次数

启用 Powershell 远程处理,访问被拒绝?

我正在尝试在以工作组模式运行的 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)

remote-access powershell

15
推荐指数
3
解决办法
7万
查看次数

为什么 PsExec 在成功运行 powershell 脚本后挂起?

剧本相当直接。只是尝试启动一堆 Windows 服务。在目标机器上执行本地工作正常。当通过 PsExec 完成时,该脚本实际上也能正常执行,直到我在 CMD 提示符下按“回车”键,它才会返回。这是一个问题,因为这是从 TeamCity 调用的,它使 Agent 挂起,等待 PsExec 返回。

我尝试了以下方法:

  • 在 Powershell 脚本的末尾添加exitexit 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 pstools

15
推荐指数
3
解决办法
4万
查看次数

在 Server 2012 Core 中使用 Powershell 解压缩文件

我需要用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 windows-server-core windows-server-2012

15
推荐指数
1
解决办法
2万
查看次数

在 Win2008r2 上使用 PowerShell 列出所有组及其成员

我是 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 active-directory groups

15
推荐指数
2
解决办法
20万
查看次数

使用保存的 ps1 文件启动远程 PowerShell 会话

我正在尝试创建几个可以保存在本地桌面上的文件以启动 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 windows-server-core

15
推荐指数
3
解决办法
710
查看次数