PowerShell随笔8 --- function】的更多相关文章

为了脚本逻辑的重复使用,我们更多时候会封装成方法.PowerShell的function和C#.JavaScript的定义有些区别. 我们直接看例子: 可以看到,定义方法并不是这样的: function GetServiceStatus(string name) { } 而是这样的: function GetServiceStatus { param(p1,p2) } 可以看到最明显的区别就是参数的部分,它是由一个param关键字指定,所有的参数在其中指定. 每个参数可以增加约束,比如是否强制.…
PowerShell特殊变量: PowerShell的特殊变量由系统自动创建.用户自定义的变量名称应该不和特殊变量相同. $^ :前一命令行的第一个标记 $$ :前一命令行的最后一个标记 $_ :表示表示当前循环的迭代变量. $? :前一命令执行状态,成功(Ture) 或者 失败(False) $Args :为脚本或者函数指定的参数 $Error :错误发生时,错误对象存储于变量 $Error 中 $Foreach :引用foreach循环中的枚举器 $Home :用户的主目录 $Host :引…
既然是随笔,那就想到什么说什么,既会分享主题知识,也会分享一些其他技巧和个人学习方法,供交流. 我一般学习一个东西,我都会问几个问题: 这东西是什么? 这东西有什么用,为什么会出现,出现是为了解决什么问题的? 我如何从0到hello world整一个demo出来? 开始 每个人学习的方式不一样,有的人喜欢看视频,有的喜欢看博客,有的则喜欢配着故事.我会直接去看官方文档,没有比这再精确的东西了. 当然最好能看英文文档,一当面提高英语水平,另一方面有些词汇实在没法找到合适的中文. PowerShel…
转至:http://blog.csdn.net/kk185800961/article/details/49022395 函数基本操作: [plain] view plain copy #创建函数 Function GetSQLService { Get-Service -DisplayName "*SQL*" } #调用函数,直接写函数名 GetSQLService #查看函数定义 $Function:GetSQLService #导出函数定义到文本 $Function:GetSQL…
我们总不能把所有脚本文件零散的放着,就像创建一个项目一样,我们创建一个Module. 创建好之后如何让系统认识我们创建的Module呢,我们需要放在指定的位置. 那到底应该放在什么位置呢? 我们可以通过$PSHOME变量查看系统从哪里加载PowerShell Module. 当然,我们也可以修改变量,添加新的路径. 那我们的Module格式应该怎么样的呢?我们写一个最简单的(不规范)看看. 我们的Module名称就是Test,在Test文件夹下必须有个和ModuleName同名的模块清单文件(*…
PowerShell默认的顺序执行命令,即使中间某一句命令出错,也会继续向下执行. 但是,我们的业务有时并非如此,我们希望出现异常情况后进行捕获异常,进行记录日志等操作. 和其他编程语言一样,我们可以使用try catch代码块. ??? 这好像没区别啊,是的.默认的每个命令都会有一些通用参数. 有个参数是:ErrorAction,就是指定命令在出现错误后的行为,我们可以看到参数值可以使继续.忽略.停止等. 该参数默认值是Continue,也就是发生错误后继续. 我们把参数值修改为Stop,就可…
简单的命令可以通过控制台窗口输入执行,但是我的脚本逻辑复杂,需要保存.总不能在命令行工具中执行吧. 关了窗口,啥都没了.有没有一个IDE,有. 在PowerShell命令行窗口中输入:ISE,就会打开PowerShell ISE. 你可以在下面控制台中直接执行命令,这里的控制台复制粘贴是常规的Ctrl+C.V,而不像控制台窗口中非标准的,使用起来还是很友好的.但有时和交互的窗口弹出存在问题,遇到了可以移步到命令行窗口. ISE上半部分编辑器中,你依旧可以使用快捷键补全,可以调试.运行.运行选中脚…
有些情况下,有些脚本命令不能满足我们的需求,而手头却能用C#很方便的实现. 我们就可以把自定义的类型Add到PowerShell中使用,使用方法和PowerShell调用.NET类库方法是一样的. 以下是个例子: 静态方法使用类进行调用,写法为:[类型]::方法名,同理,静态属性也是如此调用. 实例方法需要先实例对象然后调用,实例化使用New-Object命令.…
全局变量 输入$global:后按ctrl+space,我们就可以看到所有的全局变量. 比如我们可以查看PowerShell的版本: 我们可以在在编写脚本代码的时候使用这些变量,globle可以省略,可以这么使用$PSVersionTable.其他变量也是如此. 环境变量 输入$env:后按ctrl+space,我们就可以看到所有的环境变量. 比如有需求找系统的host文件,通常我们可能会写:C:\windows\system32\...\host,通常是没有问题的,但是极个别情况下系统盘不是C…
PowerShell便捷之处 PowerShell中兼容运行cmd的命令,比如 ipconfig.ping命令等 PowerShell的命令更友好,可读性更强.比如停止一个服务 CMD命令:sc stop xxx PowerShell命令:Stop-Service xxx PowerShell的可以使用.NET类库资源,比如:[System.DateTime]::Now就可以输出当前时间 PowerShell返回结果也是对象,并不是一篇字符串. 有哪些命令? powershell有哪些命令可以使…
$xl = new-object -comobject Excel.Application $source_wb = $xl.workbooks.open($source) $xl.visible=$false $type=$xl.GetType() $ret=$type.InvokeMember("Run",[Reflection.BindingFlags]::InvokeMethod,$null,$xl,$param) Write-Host $ret $xl.Quit() $cur…
很多时候我们需要在一个脚本文件执行另外一个脚本文件,比如我们有一个Test.ps1文件 我们有以下2种方法: Invoke-Expression (&) 我们可以看到,Test.ps1中的代码确实执行了,而且两个文件中的变量即使名称相同也是互不影响,因为在各自的作用域内. 点操作符 这个我们可以看到,执行Test.ps1后,会把Test.ps1中的变量加载到当前作用域,因为变量名称相同,所以覆盖了我们定义的变量的值. 这两种方式没有好坏,根据合适的场景使用即可.…
上一篇提到了别名,这个有必要说一下,因为我们常常会遇到以下两种情况: 自己写脚本,想快速一些,使用命名 看别人的脚本,发现别人和你想的一样,用了别名,但是你忘记了这个别名是什么意思. 我们可以通过Get-Alias命令进行查看,我们以Get-Command命令为例: 我们可以看下所有别名,有助于编写命令: 别名有好多,感觉记不住? 其实,你仔细看看命令和别名的对应关系. 命令前面说了,是"动词-名词"的格式,而动词往往时Get.Set.Copy.Remove.Import.Export…
问题描述 使用PowerShell脚本执行获取Azure订阅列表的指令(Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt).在本地调试后,指令成功运行. 但是当指令并运行在Azure Function时,则出现了异常: 详细的异常信息为 完成的错误信息为: "Error getting value from 'Tags' on 'Microsoft.Azure.Commands.Profile.Models.PSAzureSu…
问题描述 编写Powershell Function,登录到China Azure并获取Azure AD User信息,但是发现遇见了 [Error] ERROR: ManagedIdentityCredential authentication failed: An unexpected error occured while fetching the AAD Token. Please contact support with this provided Correlation IdStat…
看了文章 爱上PowerShell , 就想在CentOS 7上面试试PowerShell , 本文记录了在CentOS 7.2上安装Powershell 的过程. 首先我们要从github上下载最新的PowerShell 的rpm 包powershell-6.0.0_alpha.14-1.el7.centos.x86_64.rpm,安装方法的文档 https://github.com/PowerShell/PowerShell/blob/master/docs/installation/lin…
之前群里有人问到了这个,项目一期开发结束后正好整理了一下,发上来分享一下,也是从谷歌搜索里面学来的,大家要用好搜索哈 $ver = $host | select version if ($ver.Version.Major -gt 1) {$Host.Runspace.ThreadOptions = "ReuseThread"} Add-PsSnapin Microsoft.SharePoint.PowerShell function global:Deploy-SPSolutions…
·Customer类 public class Customer { public int Unid { get; set; } public string CustomerName { get; set; } public string Memo { get; set; } public string Other { get; set; } } ·服务端处理(Json_1.ashx) Customer customer = new Customer { Unid=1,CustomerName=…
现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解echarts是个怎样技术的开发者来说,可以到echarts官网进行学习了解,官网有详细的API文档和实例供大家参考学习. 2.以下是我在工作中实现整理出来的实例源码: 公用的支持js文件 echarts.js.echarts.min.js,还有其他的图表需要支持的js文件也可以到官网下载 echa…
https://github.com/dahlbyk/posh-git/blob/master/src/Utils.ps1#L102 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions?view=powershell-6 https://docs.microsoft.com/en-us/powershell/module/microsoft.power…
function语句: function fn(){};/*利用function关键字声明,其在作用域顶端*/ function表达式: var fn = function(){};或者 var fn = function a(){}/*把一个匿名函数或命名函数赋值给一个变量*/ 区别 function语句会把当前函数提升至当前作用域的顶端 fn();/*返回1*/ function fn(){return 1;} function表达式 fn();/*报错*/ var fn = functio…
当在win10使用docker-machine创建Hyper-v虚拟机时,返回了一个错误”Error with pre-create check: "Hyper-V PowerShell Module is not available". 解决方法非常简单,原因是docker-machine程序的版本问题,替换成 v0.13.0版本即可,详细操作如下: 1. 下载0.13.0版本docker-machine命令.点击下载:32位系统或64位系统 2. 下载完毕后,改名并替换"…
获取系统中Restart Pending的计算机 $servers=get-content D:\serverlist.txt Get-PendingReboot -ComputerName $servers | select computer,CBServicing,WindowsUpdate,CCMClientSDK,PendComputerRename,PendFileRename,{$_.PendFileRenval},RebootPending | Export-Csv d:\pend…
代码原文地址: https://gallery.technet.microsoft.com/scriptcenter/Get-TimeZone-PowerShell-4f1a34e6 <# .Synopsis This script retreives the timezone of a local or remote computer via WMI. .DESCRIPTION This script retreives the timezone of a local or remote co…
Function Get-ComputerUptimeHistory { $q=' <QueryList> <Query Id="0" Path="System"> <Select Path="System">*[System[(EventID=12 or EventID=13)]]</Select> </Query> </QueryList>' $events = Get-…
PowerShell, SSAS, Role, Membership 上篇随笔使用PowerShell创建SSAS Role贴出了如何使用PowerShell批量创建Role,由于个人项目需求,创建Role的步骤和添加Membership分开了,该文贴出如何使用PowerShell批量向Role中添加Membership. 代码如下: # --------------------------------------------------------- # AUTHOR: Niko / hewu…
随笔分类 - 常用 [PowerShell]文件的解压与压缩 摘要:1 New-Item -ItemType File 1.txt -Force #新建文本文件 2 Compress-Archive -Path '1.txt' -DestinationPath '1.zip' -Force #压缩为zip 3 Expand-Archive -Path '1.zip' -DestinationPath '新建文件夹' -Force #解压到新文件夹内 阅读全文 时间差函数列出两个时间内的所有日期…
问题 对于DBA或者其他运维人员来说授权一个账户的相同权限给另一个账户是一个很普通的任务.但是随着服务器.数据库.应用.使用人员地增加就变得很枯燥乏味又耗时费力的工作.那么有什么容易的办法来实现这个任务吗? 当然,作为非DBA在测试甚至开发环境也会遇到这种问题,要求授予所有服务器数据库的某个权限给一个人的时候.我们是不是有什么其他办法提高效率? 解决方案 如果这个时候我们网上去搜索解决方案,大多数时候搜到的都是使用T-SQL解决方案,但是这又会产生下面几个小问题: 我们需要到目标服务器上执行这些…
PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrArray = New-Object Collections.Generic.List[string] $StrArray = @() #拆分 $StrArray = $str.Split(",") $len = $StrArray.Count Write-Host "数据中元素总数…
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整个页面文档.DOM编程性能一直以来都是非常受开发者关注的话题,如何编写高性能的DOM是前端开发必不可少的技能. 1.重绘与重排 当浏览器加载完页面所有的元素.js.css.图片之后会自动生成两个数据结构: 1.dom树 (图片为转载) 如图所示,dom树表示了整个页面文档的结构,通过访问dom树我们可以得到某…