标签: powershell

如何从 PowerShell 管理 COM+?

是否有用于管理 COM+ 组件的 PowerShell 模块或命令?特别是,我想:

  • 查询是否安装/注册了 COM+ 应用程序。
  • 启动或停止 COM+ 应用程序。
  • 安装/注册或卸载/取消注册 COM+ 应用程序。

我是 PowerShell 和 COM+ 的新手,所以可能使用了错误的术语(安装与注册等)。

powershell com+

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

如何使用 PowerShell 比较两台 Windows 服务器之间已安装的修补程序?

我需要使用 PowerShell 比较开发环境和生产环境之间已安装的补丁。我怎样才能做到这一点?

windows powershell

9
推荐指数
1
解决办法
9897
查看次数

如何在powershell脚本中打印出有关任务计划程序的信息?

我正在尝试从脚本中Task Scheduler的本地计算机打印信息,PowerShell以便其他用户也可以打印此信息而不必访问Task Scheduler. 我需要脚本打印出来

  • 姓名,
  • 地位,
  • 触发器,
  • 下次运行时间,
  • 上次运行时间,
  • 上次运行结果,
  • 作者,
  • 创建。

我可以打印出有关名称、下次运行时间和上次运行时间的信息,但在运行脚本时不会打印出其余的信息。

我已经对我的脚本有了一个小小的开始,并把字段放下了。

$schedule = new-object -com("Schedule.Service") 
$schedule.connect() 
$tasks = $schedule.getfolder("\").gettasks(0)

$tasks | select Name,Status,Triggers,NextRunTime,LastRunTime,LastRunResult,Author,Created | ft

foreach ($t in $tasks)
{
foreach ($a in $t.Actions)
{
$a.Path
}
}
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议将不胜感激。

以下是我正在寻找的内容以及哪些字段未打印出数据的屏幕截图:

以下是我正在寻找的内容以及哪些字段未打印出数据的屏幕截图:

powershell windows-server-2008 task-scheduler windows-server-2012

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

如何从PowerShell中的所有网站中列出IIS中的虚拟目录

我遇到了一个完整的障碍,无法弄清楚如何在IIS 8. 我一直在检索应用程序和空的空参数错误,只是找不到让虚拟目录列出的方法。

我需要以下数据来列出有关虚拟目录的信息:

  • 物理路径
  • 应用池协会
  • 站点名称
  • 证书

下面是我一直在使用和弄乱的代码:

    *See revised code below*
    
Run Code Online (Sandbox Code Playgroud)

我还使用该Appcmd.exe命令尝试列出虚拟目录:

C:\Windows\System32\inetsrv\appcmd.exe LIST VDIRS
Run Code Online (Sandbox Code Playgroud)

但我仍然没有得到我需要的输出。任何或任何帮助将不胜感激!谢谢!

编辑# - - - - - - - - - - - - - - - - - - - - - - - - ---------------

通过注释几行来列出我的虚拟目录,但它只打印出名称和:

  • 物理路径
  • 应用池协会
  • 站点名称
  • 证书

我仍然不知道,以下是修改后的代码:

  Import-Module WebAdministration
    $Websites = Get-ChildItem IIS:\Sites 
    foreach($Site in $Websites)
            {
                $webapps = Get-WebApplication -Site $Site.name 
                $VDir = Get-WebVirtualDirectory -Site $Site.name #-Application $webapps.name
                                foreach($webvdirectory in $VDir)
                                    { …
Run Code Online (Sandbox Code Playgroud)

powershell virtual-directory windows-server-2012 iis-8

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

Powershell Get-Process:无法连接到远程机器

已经为此苦苦挣扎了几天了。

我收到以下错误:

PS C:\> get-process -ComputerName Win2012r2
get-process : Couldn't connect to remote machine.
At line:1 char:1
+ get-process -ComputerName 10.10.1.54
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-Process], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetProcessCommand
Run Code Online (Sandbox Code Playgroud)

我已经确认远程注册表服务正在服务器上运行(我也尝试重新启动它)。

此外,我创建了一个自定义防火墙规则,允许每个/sf/ask/1564994441/在端口 5985 && 5986 上建立 RCP 连接。 命令做

我还仔细检查了每个Powershell Get-Process 无法连接到远程计算机的用户名

笔记

invoke-command -ComputerName Win2012r2 -ScriptBlock {Get-Process}工作正常,但我真的需要让这个get-process -computername过程直接工作,因为它在其他人使用的另一个脚本中失败了

remote-access powershell

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

通过 Powershell 使用电子邮件地址获取登录名

我需要一个 powershell 脚本,以使用电子邮件地址获取登录名。我有一些用户的电子邮件地址的便条。我想获取域中用户的登录 ID 和帐户信息。任何人都可以对此提供帮助。

问候,卡西克。

powershell windows-server-2008 active-directory user-management

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

测试集群 Powershell cmdlet 列表与验证

Powershell cmdlet 会Test-Cluster查询大量数据并执行验证测试,然后将这些测试打包成一份漂亮的报告。如果您运行,Test-Cluster -List您将获得一个项目列表,您可以使用 cmdlet 单独查询。当您阅读DisplayName's时,有一个通用的命名方案。它们都以"List"或"Validate"开头。

显然,“验证”将通过失败来实际测试故障转移。但是将某些东西命名为“列表”让我认为它只是对数据运行时的查询。我已经使用以下脚本对此进行了测试:

$TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"}
Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report"
Run Code Online (Sandbox Code Playgroud)

在生成此报告时,我没有看到任何记录的集群错误或注意到任何故障转移活动。Microsoft technet 对此也不是很清楚,但他们确实推断这种行为与我的想法一致。请参阅此摘录(强调我的):

测试结果以您指定的文件名记录在一个文件中。通过运行验证测试,您可以确认您的硬件和设置与故障转移群集兼容。有多种类型的测试,包括集群、库存、网络、存储、系统和其他类型的测试。存储测试不会测试集群角色正在使用的联机磁盘或存储池。要测试此类磁盘,请先运行 Stop-ClusterGroup 以停止群集角色,然后运行 ​​Test-Cluster。测试完成后,再次启动集群角色,也称为资源组。

测试集群 TechNet 页面

我想提醒您注意他们对“验证”一词的使用。此外,在运行该脚本时,作为输出的一部分,它说:

Test Result:
ClusterSkippedTestsCompleted
Run Code Online (Sandbox Code Playgroud)

如果包括验证测试,结果是:

Test Result:
ClusterConditionallyApproved
Run Code Online (Sandbox Code Playgroud)

在我的测试环境中,网络测试生成了一些触发条件批准的警告。我在谷歌上搜索了很多,以找到描述“验证”与“列表”拆分背后逻辑的文档,但我没有找到任何东西。这就引出了一个问题......

列表请求会触发故障转移事件吗?

powershell cluster windows-server-2012-r2

8
推荐指数
1
解决办法
7056
查看次数

Remove-WindowsFeature 和 Uninstall-WindowsFeature 有什么区别?

Remove-WindowsFeature 和 Uninstall-WindowsFeature 有什么区别?

我在 Windows 2008 R2 机器上使用了添加和删除,但现在有安装和卸载 - 根据MSDN仅在 Windows 2012 和 8 上

powershell

8
推荐指数
1
解决办法
9936
查看次数

PowerShell:使用 åäö 获取 ADUser 属性

我正在尝试使用 Get-ADUser 提取选定的用户集。用户属于名称包含非 ASCII 字符的公司,例如“Gåäördet”。不幸的是,我们必须使用 company 属性来完成这个任务,我们还需要它从脚本中工作。

以下在交互式会话中效果很好,但在脚本中执行时不返回任何数据:

$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
Run Code Online (Sandbox Code Playgroud)

我找到了工作但不够可靠的解决方法(有选择错误对象的风险):

# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
Run Code Online (Sandbox Code Playgroud)

...或者...

# Work-around 2: 
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
Run Code Online (Sandbox Code Playgroud)

附加说明:字符编码可能不是这里的问题。正如评论中所建议的,我将其放在脚本中。阅读每个 Get-ADUser-line 的注释:

$OutputEncoding = [Console]::OutputEncoding

$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # …
Run Code Online (Sandbox Code Playgroud)

scripting powershell active-directory

8
推荐指数
1
解决办法
5747
查看次数

是否可以创建通用配置文件以使用 PowerShell 安装 Windows 功能?

我目前正在尝试自动构建运行 Windows Server 2012 R2 的 VM。目前的挑战是自动化添加角色和功能。在角色和功能向导中,有一个选项可以导出可在 PowerShell 中运行的 XML 配置文件。

但是,在查看 XML 文件后,我可以看到它特定于它正在运行的服务器 - 它包含诸如“ComputerName”之类的字段。

如果我想运行一个在许多 VM 上安装角色和功能的脚本怎么办?我需要一个通用的配置文件,而不是针对特定计算机进行个性化。

有没有人对这个问题有意见?

automation powershell automated-install xml

8
推荐指数
2
解决办法
2312
查看次数